diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index ecb363b6c7c..85f7c0847c5 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -2155,7 +2155,7 @@ ROM_START( cupsocsb2 ) ROM_LOAD16_BYTE( "sc_14.bin", 0x00001, 0x080000, CRC(566086c2) SHA1(b7d09ce978f99ecc0d1975b31330ed49317701d5) ) ROM_END -#define CUPSOC_DEBUG_MODE 1 +#define CUPSOC_DEBUG_MODE 0 static DRIVER_INIT( cupsoc ) { diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c index dcc5ab1bf3c..e70785c0344 100644 --- a/src/mame/machine/seicop.c +++ b/src/mame/machine/seicop.c @@ -2584,8 +2584,8 @@ static WRITE16_HANDLER( generic_cop_w ) 0x87 is used by Denjin Makai (DMA with inverted word endianess) */ - if(dma_trigger != 0x87) - printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_src_param,dma_dst,dma_size,dma_trigger); + //if(dma_trigger != 0x87) + // printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_src_param,dma_dst,dma_size,dma_trigger); if(dma_trigger == 0x81) return; @@ -2600,6 +2600,38 @@ static WRITE16_HANDLER( generic_cop_w ) src+=2; dst+=2; } + + return; + } + + /* Seibu Cup Soccer trigger this*/ + if (dma_trigger == 0x0e) + { + static UINT32 src,dst,size,i; + printf("SRC: %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_dst,dma_size,dma_trigger); + + src = dma_src; + dst = dma_dst; + size = ((dma_size - dma_dst) / 0x20) + 1; + + for(i=0;iwrite_dword(dst+0x00, space->read_dword(src+0x00)); + space->write_dword(dst+0x04, space->read_dword(src+0x04)); + space->write_dword(dst+0x08, space->read_dword(src+0x08)); + space->write_dword(dst+0x0c, space->read_dword(src+0x0c)); + space->write_dword(dst+0x10, space->read_dword(src+0x10)); + space->write_dword(dst+0x14, space->read_dword(src+0x14)); + space->write_dword(dst+0x18, space->read_dword(src+0x18)); + space->write_dword(dst+0x1c, space->read_dword(src+0x1c)); + + //printf("%08x %08x\n",src,dst); + + dst+=0x20; + src+=0x20; + } + + return; } // I think the value it writes here must match the other value for anything to happen.. maybe */ @@ -2607,6 +2639,8 @@ static WRITE16_HANDLER( generic_cop_w ) if ((cop_clearfill_lasttrigger==0x14) || (cop_clearfill_lasttrigger==0x15)) return; + //printf("SRC: %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_dst,dma_size,dma_trigger); + /* do the fill */ if (cop_clearfill_value[cop_clearfill_lasttrigger]==0x0000) {