hook up new c-chip to superman and volfied
This commit is contained in:
parent
eb4948acb3
commit
7f6d71d3c3
8
makefile
8
makefile
|
@ -19,10 +19,10 @@ export
|
|||
UNICODE = 1
|
||||
|
||||
# Use Segoe Fonts (installed by default on Windows Vista and newer)
|
||||
USE_SEGOE = 1
|
||||
#USE_SEGOE = 1
|
||||
|
||||
# Build A68K ASM 68000 core
|
||||
#BUILD_A68K = 1
|
||||
BUILD_A68K = 1
|
||||
|
||||
# Include x86 Assembly routines
|
||||
BUILD_X86_ASM = 1
|
||||
|
@ -40,10 +40,10 @@ INCLUDE_7Z_SUPPORT = 1
|
|||
INCLUDE_AVI_RECORDING = 1
|
||||
|
||||
# Include Files that require C++11 (Killer Instinct, Midway Mortal Kombat style drivers, and associated files) - requires C++11 support
|
||||
INCLUDE_CPLUSPLUS11_FILES = 1
|
||||
#INCLUDE_CPLUSPLUS11_FILES = 1
|
||||
|
||||
# Include symbols and other debug information in the executable
|
||||
#SYMBOL = 1
|
||||
SYMBOL = 1
|
||||
|
||||
# Include features for debugging drivers
|
||||
DEBUG = 1
|
||||
|
|
|
@ -11,7 +11,7 @@ unexport
|
|||
#
|
||||
|
||||
# Check for changes in header files
|
||||
DEPEND = 1
|
||||
#DEPEND = 0
|
||||
|
||||
|
||||
|
||||
|
@ -119,7 +119,6 @@ lib += -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lshell32 -lwinmm -lshlwapi -ladva
|
|||
ifdef INCLUDE_AVI_RECORDING
|
||||
lib += -lvfw32
|
||||
endif
|
||||
|
||||
|
||||
depobj += resource.o \
|
||||
|
||||
|
@ -228,16 +227,15 @@ CXXFLAGS = -pipe \
|
|||
endif
|
||||
ifdef GCC471
|
||||
CFLAGS = -pipe \
|
||||
-std=gnu99 -O1 \
|
||||
-std=gnu99 -O3 \
|
||||
-mwindows \
|
||||
-fforce-addr -finline-limit=1200 -fthread-jumps \
|
||||
-fexpensive-optimizations \
|
||||
-Wall -Wno-long-long -Wno-sign-compare -Wno-uninitialized -Wno-unused \
|
||||
-Wno-sequence-point \
|
||||
$(DEF) $(incdir)
|
||||
|
||||
CXXFLAGS = -pipe \
|
||||
-std=gnu++11 -O1 \
|
||||
-std=gnu++11 -O3 \
|
||||
-mwindows \
|
||||
-fforce-addr -finline-limit=1200 -fthread-jumps \
|
||||
-fexpensive-optimizations -fcheck-new \
|
||||
|
@ -352,9 +350,6 @@ endif
|
|||
|
||||
ifdef BUILD_X64_EXE
|
||||
DEF := $(DEF) -DBUILD_X64_EXE
|
||||
ifdef INCLUDE_CPLUSPLUS11_FILES
|
||||
DEF := $(DEF) -DXBYAK_NO_OP_NAMES -DMIPS3_X64_DRC
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef USE_SEGOE
|
||||
|
@ -474,7 +469,8 @@ endif
|
|||
$(NAME).exe: $(allobj) $(objdir)/drivers.o
|
||||
@echo
|
||||
@echo Linking executable... $(NAME).exe
|
||||
@$(LD) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(lib)
|
||||
@echo $(LD) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(lib)
|
||||
$(LD) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(lib)
|
||||
|
||||
ifdef DEBUG
|
||||
|
||||
|
@ -504,6 +500,9 @@ ifdef PERL
|
|||
@$(srcdir)dep/scripts/gamelist.pl -o $@ -l gamelist.txt \
|
||||
$(filter %.cpp,$(foreach file,$(drvsrc:.o=.cpp),$(foreach dir,$(alldir), \
|
||||
$(firstword $(wildcard $(srcdir)$(dir)/$(file))))))
|
||||
@echo @$(srcdir)dep/scripts/gamelist.pl -o $@ -l gamelist.txt \
|
||||
$(filter %.cpp,$(foreach file,$(drvobj:.o=.cpp),$(foreach dir,$(alldir), \
|
||||
$(firstword $(wildcard $(srcdir)$(dir)/$(file))))))
|
||||
else
|
||||
ifeq ($(MAKELEVEL),2)
|
||||
@echo
|
||||
|
@ -547,9 +546,11 @@ ifeq ($(MAKELEVEL),2)
|
|||
endif
|
||||
endif
|
||||
|
||||
@echo $(app_gnuc.rc): app.rc $(license.rc) $(license.rtf) $(srcdir)dep/scripts/fixrc.pl $(srcdir)burner/resource/fba.ico $(srcdir)burner/resource/about.bmp $(srcdir)burner/resource/splash.bmp $(srcdir)burner/resource/misc.bmp
|
||||
$(app_gnuc.rc): app.rc $(license.rc) $(license.rtf) $(srcdir)dep/scripts/fixrc.pl $(srcdir)burner/resource/fba.ico $(srcdir)burner/resource/about.bmp $(srcdir)burner/resource/splash.bmp $(srcdir)burner/resource/misc.bmp
|
||||
|
||||
ifdef PERL
|
||||
@echo @$(srcdir)dep/scripts/fixrc.pl $< -o $@
|
||||
@$(srcdir)dep/scripts/fixrc.pl $< -o $@
|
||||
else
|
||||
ifeq ($(MAKELEVEL),2)
|
||||
|
@ -591,29 +592,21 @@ endif
|
|||
|
||||
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
||||
@echo Compiling Musashi MC680x0 core \(m68kcpu.c\)...
|
||||
@echo $(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o
|
||||
@$(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o
|
||||
|
||||
$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
||||
@echo Compiling Musashi MC680x0 core \(m68kops.c\)...
|
||||
@echo $(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o
|
||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o
|
||||
|
||||
$(objdir)cpu/m68k/m68kopac.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopac.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
||||
@echo Compiling Musashi MC680x0 core \(m68kopac.c\)...
|
||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopac.c -o $(objdir)cpu/m68k/m68kopac.o
|
||||
|
||||
$(objdir)cpu/m68k/m68kopdm.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopdm.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
||||
@echo Compiling Musashi MC680x0 core \(m68kopdm.c\)...
|
||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopdm.c -o $(objdir)cpu/m68k/m68kopdm.o
|
||||
|
||||
$(objdir)cpu/m68k/m68kopnz.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopnz.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
||||
@echo Compiling Musashi MC680x0 core \(m68kopnz.c\)...
|
||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopnz.c -o $(objdir)cpu/m68k/m68kopnz.o
|
||||
|
||||
$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake.exe $(srcdir)cpu/m68k/m68k_in.c
|
||||
@echo $(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
||||
$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
||||
|
||||
$(objdir)cpu/m68k/m68kmake.exe: $(srcdir)cpu/m68k/m68kmake.c
|
||||
@echo Compiling Musashi MC680x0 core \(m68kmake.c\)...
|
||||
@echo $(CC) $(CFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake.exe
|
||||
@$(CC) $(CFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake.exe
|
||||
|
||||
|
||||
|
@ -711,6 +704,7 @@ ifdef GCC471
|
|||
ifdef BUILD_X64_EXE
|
||||
@windres -F pe-x86-64 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
||||
else
|
||||
@echo @windres -F pe-i386 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
||||
@windres -F pe-i386 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
||||
endif
|
||||
endif
|
||||
|
@ -730,10 +724,12 @@ ifeq ($(MAKELEVEL),1)
|
|||
|
||||
%.o: %.cpp
|
||||
@echo Compiling $<...
|
||||
@echo $(CC) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
||||
@$(CC) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
||||
|
||||
%.o: %.c
|
||||
@echo Compiling $<...
|
||||
@echo $(CC) $(CFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
||||
@$(CC) $(CFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
||||
|
||||
%.o: %.asm
|
||||
|
@ -744,6 +740,7 @@ else
|
|||
|
||||
%.o: %.c
|
||||
@echo Compiling $<...
|
||||
@echo $(CC) $(CFLAGS) -c $< -o $@
|
||||
@$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.o: %.asm
|
||||
|
|
|
@ -31,20 +31,5 @@ extern UINT8 cchip_active;
|
|||
} \
|
||||
if (a >= (0x0800 | base) && a <= (0x0fff | base)) { \
|
||||
cchip_asic_write68k((a & 0x7ff) >> 1, d); \
|
||||
}
|
||||
|
||||
#define CCHIP_READ8(base) \
|
||||
if (a >= (0x0000 | base) && a <= (0x07ff | base)) \
|
||||
return cchip_68k_read((a & 0x7ff) >> 1); \
|
||||
\
|
||||
if (a >= (0x0800 | base) && a <= (0x0fff | base)) \
|
||||
return cchip_asic_read((a & 0x7ff) >> 1);
|
||||
|
||||
#define CCHIP_WRITE8(base) \
|
||||
if (a >= (0x0000 | base) && a <= (0x07ff | base)) { \
|
||||
cchip_68k_write((a & 0x7ff) >> 1, d); \
|
||||
return; \
|
||||
} \
|
||||
if (a >= (0x0800 | base) && a <= (0x0fff | base)) { \
|
||||
cchip_asic_write68k((a & 0x7ff) >> 1, d); \
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
static UINT8 CurrentBank;
|
||||
|
||||
#if 0
|
||||
// Superman C-Chip
|
||||
static UINT8 SupermanPort = 0;
|
||||
|
||||
|
@ -104,6 +105,7 @@ void SupermanCChipScan(INT32 nAction)
|
|||
SCAN_VAR(SupermanPort);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Mega Blast
|
||||
|
||||
|
@ -154,6 +156,7 @@ void MegabCChipScan(INT32 nAction)
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
// Rainbow Islands C-Chip
|
||||
|
||||
static UINT8 *CRAM[8];
|
||||
|
@ -927,6 +930,7 @@ void RainbowCChipScan(INT32 nAction)
|
|||
BurnRandomScan(nAction);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -2271,6 +2275,7 @@ void BonzeCChipScan(INT32 nAction)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/*************************************************************************
|
||||
|
||||
Volfied C-Chip Protection
|
||||
|
@ -2683,8 +2688,9 @@ void VolfiedCChipRamWrite(INT32 offset, UINT8 data)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if 0
|
||||
/*************************************
|
||||
*
|
||||
* Reads from C-Chip
|
||||
|
@ -2794,3 +2800,4 @@ void VolfiedCChipScan(INT32 nAction)
|
|||
SCAN_VAR(volfied_current_cmd);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -225,7 +225,7 @@ static struct BurnInputInfo VolfiedInputList[] =
|
|||
|
||||
{"P2 Up" , BIT_DIGITAL , TaitoInputPort3 + 1, "p2 up" },
|
||||
{"P2 Down" , BIT_DIGITAL , TaitoInputPort3 + 2, "p2 down" },
|
||||
{"P2 Left" , BIT_DIGITAL , TaitoInputPort3 + 3, "p2 left" },
|
||||
{"P2 Left" , BIT_DIGITAL , TaitoInputPort3 + 7, "p2 left" },
|
||||
{"P2 Right" , BIT_DIGITAL , TaitoInputPort3 + 4, "p2 right" },
|
||||
{"P2 Fire 1" , BIT_DIGITAL , TaitoInputPort3 + 5, "p2 fire 1" },
|
||||
|
||||
|
@ -528,6 +528,8 @@ static void VolfiedMakeInputs()
|
|||
if (TaitoInputPort3[5]) TaitoInput[3] -= 0x20;
|
||||
if (TaitoInputPort3[6]) TaitoInput[3] -= 0x40;
|
||||
if (TaitoInputPort3[7]) TaitoInput[3] -= 0x80;
|
||||
|
||||
cchip_loadports(TaitoInput[0], TaitoInput[1], TaitoInput[2], TaitoInput[3]);
|
||||
}
|
||||
|
||||
static struct BurnDIPInfo DariusDIPList[]=
|
||||
|
@ -2326,14 +2328,14 @@ static struct BurnRomInfo VolfiedRomDesc[] = {
|
|||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-10.15", 0x10000, 0x429b6b49, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x46b0b479, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
|
||||
{ "c04-4-1.3", 0x00200, 0xab9fae65, BRF_OPT },
|
||||
{ "c04-5.75", 0x00200, 0x2763ec89, BRF_OPT },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x00000000, BRF_OPT | BRF_NODUMP },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Volfied)
|
||||
STDROMPICKEXT(Volfied, Volfied, cchip)
|
||||
STD_ROM_FN(Volfied)
|
||||
|
||||
static struct BurnRomInfo VolfiedjRomDesc[] = {
|
||||
|
@ -2356,14 +2358,14 @@ static struct BurnRomInfo VolfiedjRomDesc[] = {
|
|||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-10.15", 0x10000, 0x429b6b49, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x46b0b479, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
|
||||
{ "c04-4-1.3", 0x00200, 0xab9fae65, BRF_OPT },
|
||||
{ "c04-5.75", 0x00200, 0x2763ec89, BRF_OPT },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x00000000, BRF_OPT | BRF_NODUMP },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Volfiedj)
|
||||
STDROMPICKEXT(Volfiedj, Volfiedj, cchip)
|
||||
STD_ROM_FN(Volfiedj)
|
||||
|
||||
static struct BurnRomInfo VolfiedjoRomDesc[] = {
|
||||
|
@ -2386,14 +2388,14 @@ static struct BurnRomInfo VolfiedjoRomDesc[] = {
|
|||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-10.15", 0x10000, 0x429b6b49, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x46b0b479, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
|
||||
{ "c04-4-1.3", 0x00200, 0xab9fae65, BRF_OPT },
|
||||
{ "c04-5.75", 0x00200, 0x2763ec89, BRF_OPT },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x00000000, BRF_OPT | BRF_NODUMP },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Volfiedjo)
|
||||
STDROMPICKEXT(Volfiedjo, Volfiedjo, cchip)
|
||||
STD_ROM_FN(Volfiedjo)
|
||||
|
||||
static struct BurnRomInfo VolfieduRomDesc[] = {
|
||||
|
@ -2416,14 +2418,14 @@ static struct BurnRomInfo VolfieduRomDesc[] = {
|
|||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-10.15", 0x10000, 0x429b6b49, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
{ "c04-09.14", 0x10000, 0xc78cf057, BRF_GRA | TAITO_SPRITESA_BYTESWAP },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x46b0b479, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
|
||||
{ "c04-4-1.3", 0x00200, 0xab9fae65, BRF_OPT },
|
||||
{ "c04-5.75", 0x00200, 0x2763ec89, BRF_OPT },
|
||||
|
||||
{ "cchip_c04-23", 0x02000, 0x00000000, BRF_OPT | BRF_NODUMP },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Volfiedu)
|
||||
STDROMPICKEXT(Volfiedu, Volfiedu, cchip)
|
||||
STD_ROM_FN(Volfiedu)
|
||||
|
||||
static int MemIndex()
|
||||
|
@ -3431,10 +3433,7 @@ void __fastcall Topspeed68K2WriteWord(UINT32 a, UINT16 d)
|
|||
|
||||
UINT8 __fastcall Volfied68KReadByte(UINT32 a)
|
||||
{
|
||||
if (a >= 0xf00000 && a <= 0xf007ff) {
|
||||
INT32 Offset = (a - 0xf00000) >> 1;
|
||||
return VolfiedCChipRamRead(Offset);
|
||||
}
|
||||
CCHIP_READ(0xf00000)
|
||||
|
||||
switch (a) {
|
||||
case 0xd00001: {
|
||||
|
@ -3445,10 +3444,6 @@ UINT8 __fastcall Volfied68KReadByte(UINT32 a)
|
|||
return TC0140SYTCommRead();
|
||||
}
|
||||
|
||||
case 0xf00803: {
|
||||
return VolfiedCChipCtrlRead() & 0xff;
|
||||
}
|
||||
|
||||
default: {
|
||||
bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
|
||||
}
|
||||
|
@ -3471,11 +3466,7 @@ void __fastcall Volfied68KWriteByte(UINT32 a, UINT8 d)
|
|||
return;
|
||||
}
|
||||
|
||||
if (a >= 0xf00000 && a <= 0xf007ff) {
|
||||
INT32 Offset = (a - 0xf00000) >> 1;
|
||||
VolfiedCChipRamWrite(Offset, d);
|
||||
return;
|
||||
}
|
||||
CCHIP_WRITE(0xf00000)
|
||||
|
||||
switch (a) {
|
||||
case 0x700001: {
|
||||
|
@ -3488,16 +3479,6 @@ void __fastcall Volfied68KWriteByte(UINT32 a, UINT8 d)
|
|||
return;
|
||||
}
|
||||
|
||||
case 0xf00803: {
|
||||
// cchip ctrl write - ignored
|
||||
return;
|
||||
}
|
||||
|
||||
case 0xf00c01: {
|
||||
VolfiedCChipBankWrite(d);
|
||||
return;
|
||||
}
|
||||
|
||||
default: {
|
||||
bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
|
||||
}
|
||||
|
@ -3506,11 +3487,8 @@ void __fastcall Volfied68KWriteByte(UINT32 a, UINT8 d)
|
|||
|
||||
UINT16 __fastcall Volfied68KReadWord(UINT32 a)
|
||||
{
|
||||
if (a >= 0xf00000 && a <= 0xf007ff) {
|
||||
INT32 Offset = (a - 0xf00000) >> 1;
|
||||
return VolfiedCChipRamRead(Offset);
|
||||
}
|
||||
|
||||
CCHIP_READ(0xf00000)
|
||||
|
||||
switch (a) {
|
||||
case 0xd00000: {
|
||||
return 0x60;
|
||||
|
@ -3537,11 +3515,7 @@ void __fastcall Volfied68KWriteWord(UINT32 a, UINT16 d)
|
|||
return;
|
||||
}
|
||||
|
||||
if (a >= 0xf00000 && a <= 0xf007ff) {
|
||||
INT32 Offset = (a - 0xf00000) >> 1;
|
||||
VolfiedCChipRamWrite(Offset, d & 0xff);
|
||||
return;
|
||||
}
|
||||
CCHIP_WRITE(0xf00000)
|
||||
|
||||
switch (a) {
|
||||
case 0x600000: {
|
||||
|
@ -3564,11 +3538,6 @@ void __fastcall Volfied68KWriteWord(UINT32 a, UINT16 d)
|
|||
return;
|
||||
}
|
||||
|
||||
case 0xf00c00: {
|
||||
VolfiedCChipBankWrite(d);
|
||||
return;
|
||||
}
|
||||
|
||||
default: {
|
||||
bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
|
||||
}
|
||||
|
@ -5353,7 +5322,7 @@ static INT32 VolfiedInit()
|
|||
nTaitoCyclesTotal[0] = 8000000 / 60;
|
||||
nTaitoCyclesTotal[1] = 4000000 / 60;
|
||||
|
||||
VolfiedCChipInit();
|
||||
cchip_init();
|
||||
|
||||
// Reset the driver
|
||||
TaitoResetFunction = VolfiedDoReset;
|
||||
|
@ -6086,6 +6055,11 @@ static INT32 JumpingFrame()
|
|||
ZetOpen(0);
|
||||
BurnTimerUpdate(i * (nTaitoCyclesTotal[1] / nInterleave));
|
||||
ZetClose();
|
||||
|
||||
if (cchip_active) { // volfied
|
||||
cchip_run(12000000 / 60 / nInterleave);
|
||||
if (i == 9) cchip_interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
ZetOpen(0);
|
||||
|
@ -6542,7 +6516,7 @@ struct BurnDriver BurnDrvFullthrl = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvVolfied = {
|
||||
"volfied", NULL, NULL, NULL, "1989",
|
||||
"volfied", NULL, "cchip", NULL, "1989",
|
||||
"Volfied (World, revision 1)\0", NULL, "Taito Corporation Japan", "Taito Misc",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_TAITO_MISC, GBF_PUZZLE, 0,
|
||||
|
@ -6552,7 +6526,7 @@ struct BurnDriver BurnDrvVolfied = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvVolfiedj = {
|
||||
"volfiedj", "volfied", NULL, NULL, "1989",
|
||||
"volfiedj", "volfied", "cchip", NULL, "1989",
|
||||
"Volfied (Japan, revision 1)\0", NULL, "Taito Corporation", "Taito Misc",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_TAITO_MISC, GBF_PUZZLE, 0,
|
||||
|
@ -6562,7 +6536,7 @@ struct BurnDriver BurnDrvVolfiedj = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvVolfiedjo = {
|
||||
"volfiedjo", "volfied", NULL, NULL, "1989",
|
||||
"volfiedjo", "volfied", "cchip", NULL, "1989",
|
||||
"Volfied (Japan)\0", NULL, "Taito Corporation", "Taito Misc",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_TAITO_MISC, GBF_PUZZLE, 0,
|
||||
|
@ -6572,7 +6546,7 @@ struct BurnDriver BurnDrvVolfiedjo = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvVolfiedu = {
|
||||
"volfiedu", "volfied", NULL, NULL, "1989",
|
||||
"volfiedu", "volfied", "cchip", NULL, "1989",
|
||||
"Volfied (US, revision 1)\0", NULL, "Taito America Corporation", "Taito Misc",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_TAITO_MISC, GBF_PUZZLE, 0,
|
||||
|
|
|
@ -30,7 +30,7 @@ static struct BurnInputInfo SupermanInputList[]=
|
|||
|
||||
{"Reset" , BIT_DIGITAL, &TaitoReset , "reset" },
|
||||
{"Service" , BIT_DIGITAL, TaitoInputPort2 + 2, "service" },
|
||||
{"Tilt" , BIT_DIGITAL, TaitoInputPort2 + 3, "tilt" },
|
||||
{"Tilt" , BIT_DIGITAL, TaitoInputPort2 + 7, "tilt" },
|
||||
{"Dip 1" , BIT_DIPSWITCH, TaitoDip + 0 , "dip" },
|
||||
{"Dip 2" , BIT_DIPSWITCH, TaitoDip + 1 , "dip" },
|
||||
};
|
||||
|
@ -76,7 +76,10 @@ static void TaitoXMakeInputs()
|
|||
TaitoInput[0] -= (TaitoInputPort0[i] & 1) << i;
|
||||
TaitoInput[1] -= (TaitoInputPort1[i] & 1) << i;
|
||||
TaitoInput[2] -= (TaitoInputPort2[i] & 1) << i;
|
||||
}
|
||||
|
||||
if (cchip_active) {
|
||||
cchip_loadports(TaitoInput[0], TaitoInput[1], 0, TaitoInput[2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -576,6 +579,15 @@ static struct BurnDIPInfo DaisenpuDIPList[]=
|
|||
|
||||
STDDIPINFO(Daisenpu)
|
||||
|
||||
// Taito C-Chip BIOS
|
||||
static struct BurnRomInfo emptyRomDesc[] = {
|
||||
{ "", 0, 0, 0 },
|
||||
};
|
||||
|
||||
static struct BurnRomInfo cchipRomDesc[] = {
|
||||
{ "cchip_upd78c11.bin", 0x01000, 0x43021521, BRF_BIOS | TAITO_CCHIP_BIOS},
|
||||
};
|
||||
|
||||
static struct BurnRomInfo BallbrosRomDesc[] = {
|
||||
{ "10a", 0x20000, 0x4af0e858, BRF_ESS | BRF_PRG | TAITO_68KROM1_BYTESWAP },
|
||||
{ "5a", 0x20000, 0x0b983a69, BRF_ESS | BRF_PRG | TAITO_68KROM1_BYTESWAP },
|
||||
|
@ -667,10 +679,10 @@ static struct BurnRomInfo SupermanRomDesc[] = {
|
|||
|
||||
{ "b61-01.e18", 0x80000, 0x3cf99786, BRF_SND | TAITO_YM2610B },
|
||||
|
||||
{ "b61_11.m11", 0x10000, 0x00000000, BRF_ESS | BRF_PRG | BRF_NODUMP },
|
||||
{ "b61_11.m11", 0x02000, 0x3bc5d44b, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Superman)
|
||||
STDROMPICKEXT(Superman, Superman, cchip)
|
||||
STD_ROM_FN(Superman)
|
||||
|
||||
static struct BurnRomInfo SupermanuRomDesc[] = {
|
||||
|
@ -688,10 +700,10 @@ static struct BurnRomInfo SupermanuRomDesc[] = {
|
|||
|
||||
{ "b61-01.e18", 0x80000, 0x3cf99786, BRF_SND | TAITO_YM2610B },
|
||||
|
||||
{ "b61_11.m11", 0x10000, 0x00000000, BRF_ESS | BRF_PRG | BRF_NODUMP },
|
||||
{ "b61_11.m11", 0x02000, 0x3bc5d44b, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Supermanu)
|
||||
STDROMPICKEXT(Supermanu, Supermanu, cchip)
|
||||
STD_ROM_FN(Supermanu)
|
||||
|
||||
static struct BurnRomInfo SupermanjRomDesc[] = {
|
||||
|
@ -709,10 +721,10 @@ static struct BurnRomInfo SupermanjRomDesc[] = {
|
|||
|
||||
{ "b61-01.e18", 0x80000, 0x3cf99786, BRF_SND | TAITO_YM2610B },
|
||||
|
||||
{ "b61_11.m11", 0x10000, 0x00000000, BRF_ESS | BRF_PRG | BRF_NODUMP },
|
||||
{ "b61_11.m11", 0x02000, 0x3bc5d44b, BRF_ESS | BRF_PRG | TAITO_CCHIP_EEPROM },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(Supermanj)
|
||||
STDROMPICKEXT(Supermanj, Supermanj, cchip)
|
||||
STD_ROM_FN(Supermanj)
|
||||
|
||||
static struct BurnRomInfo TwinhawkRomDesc[] = {
|
||||
|
@ -771,6 +783,9 @@ static INT32 MemIndex()
|
|||
TaitoZ80Rom1 = Next; Next += TaitoZ80Rom1Size;
|
||||
TaitoYM2610ARom = Next; Next += TaitoYM2610ARomSize;
|
||||
TaitoYM2610BRom = Next; Next += TaitoYM2610BRomSize;
|
||||
|
||||
cchip_rom = Next; Next += TaitoCCHIPBIOSSize;
|
||||
cchip_eeprom = Next; Next += TaitoCCHIPEEPROMSize;
|
||||
|
||||
TaitoRamStart = Next;
|
||||
|
||||
|
@ -792,10 +807,8 @@ static INT32 MemIndex()
|
|||
|
||||
UINT8 __fastcall TaitoX68KReadByte(UINT32 a)
|
||||
{
|
||||
if (TaitoIC_SupermanCChipInUse) {
|
||||
if (a >= 0x900000 && a <= 0x9007ff) {
|
||||
return SupermanCChipRamRead((a - 0x900000) >> 1, TaitoInput[0], TaitoInput[1], TaitoInput[2]);
|
||||
}
|
||||
if (cchip_active) {
|
||||
CCHIP_READ(0x900000)
|
||||
}
|
||||
|
||||
switch (a) {
|
||||
|
@ -818,24 +831,8 @@ UINT8 __fastcall TaitoX68KReadByte(UINT32 a)
|
|||
case 0x800003: {
|
||||
return TC0140SYTCommRead();
|
||||
}
|
||||
|
||||
case 0x900001: {
|
||||
return TaitoInput[0];
|
||||
}
|
||||
|
||||
case 0x900003: {
|
||||
return TaitoInput[1];
|
||||
}
|
||||
|
||||
case 0x900005: {
|
||||
return TaitoInput[2];
|
||||
}
|
||||
|
||||
case 0x900803: {
|
||||
if (TaitoIC_SupermanCChipInUse) return SupermanCChipCtrlRead();
|
||||
}
|
||||
|
||||
default: {
|
||||
|
||||
default: {
|
||||
bprintf(PRINT_NORMAL, _T("68K #1 Read byte => %06X\n"), a);
|
||||
}
|
||||
}
|
||||
|
@ -845,13 +842,10 @@ UINT8 __fastcall TaitoX68KReadByte(UINT32 a)
|
|||
|
||||
void __fastcall TaitoX68KWriteByte(UINT32 a, UINT8 d)
|
||||
{
|
||||
if (TaitoIC_SupermanCChipInUse) {
|
||||
if (a >= 0x900000 && a <= 0x9007ff) {
|
||||
SupermanCChipRamWrite((a - 0x900000) >> 1, d);
|
||||
return;
|
||||
}
|
||||
if (cchip_active) {
|
||||
CCHIP_WRITE(0x900000)
|
||||
}
|
||||
|
||||
|
||||
switch (a) {
|
||||
case 0x300000:
|
||||
case 0x300001: {
|
||||
|
@ -886,26 +880,7 @@ void __fastcall TaitoX68KWriteByte(UINT32 a, UINT8 d)
|
|||
TC0140SYTCommWrite(d);
|
||||
return;
|
||||
}
|
||||
|
||||
case 0x900009: {
|
||||
// coin write
|
||||
return;
|
||||
}
|
||||
|
||||
case 0x900803: {
|
||||
if (TaitoIC_SupermanCChipInUse) {
|
||||
SupermanCChipCtrlWrite();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
case 0x900c01: {
|
||||
if (TaitoIC_SupermanCChipInUse) {
|
||||
SupermanCChipBankWrite(d);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
case 0xc00000:
|
||||
case 0xc00001: {
|
||||
//???
|
||||
|
@ -1234,8 +1209,6 @@ static INT32 SupermanInit()
|
|||
{
|
||||
INT32 nRet;
|
||||
|
||||
SupermanCChipInit();
|
||||
|
||||
TaitoSpriteAModulo = 0x200;
|
||||
TaitoSpriteANumPlanes = 4;
|
||||
TaitoSpriteAWidth = 16;
|
||||
|
@ -1246,7 +1219,9 @@ static INT32 SupermanInit()
|
|||
TaitoNumSpriteA = 0x4000;
|
||||
|
||||
nRet = TaitoXInit(0);
|
||||
|
||||
|
||||
cchip_init();
|
||||
|
||||
TaitoIrqLine = 6;
|
||||
|
||||
return nRet;
|
||||
|
@ -1498,6 +1473,11 @@ static INT32 TaitoXFrame()
|
|||
ZetOpen(0);
|
||||
BurnTimerUpdate(i * (nTaitoCyclesTotal[1] / nInterleave));
|
||||
ZetClose();
|
||||
|
||||
if (cchip_active) { // superman
|
||||
cchip_run(8000000 / 60 / nInterleave);
|
||||
if (i == (nInterleave - 1)) cchip_interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
ZetOpen(0);
|
||||
|
@ -1657,7 +1637,7 @@ struct BurnDriver BurnDrvKyustrkr = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvSuperman = {
|
||||
"superman", NULL, NULL, NULL, "1988",
|
||||
"superman", NULL, "cchip", NULL, "1988",
|
||||
"Superman (World)\0", NULL, "Taito Corporation", "Taito X",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING, 2, HARDWARE_TAITO_TAITOX, GBF_SCRFIGHT, 0,
|
||||
|
@ -1667,7 +1647,7 @@ struct BurnDriver BurnDrvSuperman = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvSupermanu = {
|
||||
"supermanu", "superman", NULL, NULL, "1988",
|
||||
"supermanu", "superman", "cchip", NULL, "1988",
|
||||
"Superman (US)\0", NULL, "Taito Corporation", "Taito X",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_TAITO_TAITOX, GBF_SCRFIGHT, 0,
|
||||
|
@ -1677,7 +1657,7 @@ struct BurnDriver BurnDrvSupermanu = {
|
|||
};
|
||||
|
||||
struct BurnDriver BurnDrvSupermanj = {
|
||||
"supermanj", "superman", NULL, NULL, "1988",
|
||||
"supermanj", "superman", "cchip", NULL, "1988",
|
||||
"Superman (Japan)\0", NULL, "Taito Corporation", "Taito X",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_TAITO_TAITOX, GBF_SCRFIGHT, 0,
|
||||
|
|
|
@ -571,7 +571,7 @@ INT32 TaitoLoadRoms(INT32 bLoad)
|
|||
|
||||
Offset = 0;
|
||||
i = Taito68KRom1Num + Taito68KRom2Num + Taito68KRom3Num + TaitoZ80Rom1Num + TaitoZ80Rom2Num + TaitoCharRomNum + TaitoCharBRomNum;
|
||||
|
||||
|
||||
while (i < Taito68KRom1Num + Taito68KRom2Num + Taito68KRom3Num + TaitoZ80Rom1Num + TaitoZ80Rom2Num + TaitoCharRomNum + TaitoCharBRomNum + TaitoSpriteARomNum) {
|
||||
BurnDrvGetRomInfo(&ri, i + 0);
|
||||
|
||||
|
|
|
@ -26,11 +26,11 @@ INT32 TaitoWatchdog;
|
|||
|
||||
void TaitoICReset()
|
||||
{
|
||||
if (TaitoIC_SupermanCChipInUse) SupermanCChipReset();
|
||||
//if (TaitoIC_SupermanCChipInUse) SupermanCChipReset();
|
||||
if (TaitoIC_MegabCChipInUse) MegabCChipReset();
|
||||
if (TaitoIC_RainbowCChipInUse) RainbowCChipReset();
|
||||
//if (TaitoIC_RainbowCChipInUse) RainbowCChipReset();
|
||||
if (TaitoIC_OpwolfCChipInUse) OpwolfCChipReset();
|
||||
if (TaitoIC_VolfiedCChipInUse) VolfiedCChipReset();
|
||||
//if (TaitoIC_VolfiedCChipInUse) VolfiedCChipReset();
|
||||
|
||||
if (TaitoIC_PC080SNInUse) PC080SNReset();
|
||||
if (TaitoIC_PC090OJInUse) PC090OJReset();
|
||||
|
@ -54,11 +54,11 @@ void TaitoICReset()
|
|||
|
||||
void TaitoICExit()
|
||||
{
|
||||
if (TaitoIC_SupermanCChipInUse) SupermanCChipExit();
|
||||
//if (TaitoIC_SupermanCChipInUse) SupermanCChipExit();
|
||||
if (TaitoIC_MegabCChipInUse) MegabCChipExit();
|
||||
if (TaitoIC_RainbowCChipInUse) RainbowCChipExit();
|
||||
//if (TaitoIC_RainbowCChipInUse) RainbowCChipExit();
|
||||
if (TaitoIC_OpwolfCChipInUse) OpwolfCChipExit();
|
||||
if (TaitoIC_VolfiedCChipInUse) VolfiedCChipExit();
|
||||
//if (TaitoIC_VolfiedCChipInUse) VolfiedCChipExit();
|
||||
|
||||
if (TaitoIC_PC080SNInUse) PC080SNExit();
|
||||
if (TaitoIC_PC090OJInUse) PC090OJExit();
|
||||
|
@ -103,11 +103,11 @@ void TaitoICExit()
|
|||
|
||||
void TaitoICScan(INT32 nAction)
|
||||
{
|
||||
if (TaitoIC_SupermanCChipInUse) SupermanCChipScan(nAction);
|
||||
//if (TaitoIC_SupermanCChipInUse) SupermanCChipScan(nAction);
|
||||
if (TaitoIC_MegabCChipInUse) MegabCChipScan(nAction);
|
||||
if (TaitoIC_RainbowCChipInUse) RainbowCChipScan(nAction);
|
||||
//if (TaitoIC_RainbowCChipInUse) RainbowCChipScan(nAction);
|
||||
if (TaitoIC_OpwolfCChipInUse) OpwolfCChipScan(nAction);
|
||||
if (TaitoIC_VolfiedCChipInUse) VolfiedCChipScan(nAction);
|
||||
//if (TaitoIC_VolfiedCChipInUse) VolfiedCChipScan(nAction);
|
||||
|
||||
if (TaitoIC_PC080SNInUse) PC080SNScan(nAction);
|
||||
if (TaitoIC_PC090OJInUse) PC090OJScan(nAction);
|
||||
|
|
Loading…
Reference in New Issue