Fixed DICR handling. [smf]
Removed non existant root counter 3 IRQ. [smf]
Ignore root counter stop when reset is also set. [smf]

Konami 573:

Removed custom root counters. [smf]

DS2401

Fixed timer intervals. [smf]

New games added or promoted from NOT_WORKING status
---------------------------------------------------

 Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB) [smf]

new not working game
--------------------

 GunMania (GL906 VER. JAA) [smf]
 Fighting Mania (QG918 VER. EAA) [smf]
 Fighting Mania (QG918 VER. AAA) [smf]
 Punch Mania: Hokuto No Ken (GQ918 VER. JAB) [smf]
 Punch Mania: Hokuto No Ken (GQ918 VER. JAB, ALT CD) [smf]
 Fighting Mania (QG918 VER. KAA) [smf]
 Fighting Mania (QG918 VER. UAA) [smf]
 Punch Mania 2: Hokuto No Ken (GQA09 JAA) [smf]
 DrumMania 4th Mix (G*A25 VER. JAA) [smf]
 DrumMania 5th Mix (G*B05 VER. JAA) [smf]
 Guitar Freaks 7th Mix (G*B17 VER. JAA) [smf]
 Martial Beat (Martial Beat (G*B47 VER. JBA) [smf]
 DrumMania 7th Mix power-up ver. (G*C07 VER. JBA) [smf]
 DrumMania 7th Mix (G*C07 VER. JAA) [smf]
 Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA) [smf]
 Guitar Freaks 8th Mix (G*C08 VER. JAA) [smf]
 DrumMania 8th Mix (G*C38 VER. JAA) [smf]
 Guitar Freaks 9th Mix (G*C39 VER. JAA) [smf]
 DrumMania 9th Mix (G*D09 VER. JAA) [smf]
 Guitar Freaks 10th Mix (G*D10 VER. JAB) [smf]
 Guitar Freaks 10th Mix (G*D10 VER. JAA) [smf]
 Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA) [smf]
 DrumMania 10th Mix (G*D40 VER. JAA) [smf]
This commit is contained in:
smf- 2011-02-20 10:52:56 +00:00
parent 504da3edb8
commit 518a1b74a2
4 changed files with 1010 additions and 238 deletions

View File

@ -49,11 +49,11 @@ ds2401_device::ds2401_device(running_machine &_machine, const ds2401_device_conf
void ds2401_device::device_start() void ds2401_device::device_start()
{ {
t_samp = attotime::from_usec( 15); t_samp = attotime::from_usec( 30);
t_rdv = attotime::from_usec( 15); t_rdv = attotime::from_usec( 30);
t_rstl = attotime::from_usec(480); t_rstl = attotime::from_usec(480);
t_pdh = attotime::from_usec( 15); t_pdh = attotime::from_usec( 30);
t_pdl = attotime::from_usec( 60); t_pdl = attotime::from_usec(120);
save_item(NAME(state)); save_item(NAME(state));
save_item(NAME(bit)); save_item(NAME(bit));

File diff suppressed because it is too large Load Diff

View File

@ -286,17 +286,10 @@ static void dma_interrupt_update( psx_machine *p_psx )
p_psx->n_dicr |= 0x80000000; p_psx->n_dicr |= 0x80000000;
psx_irq_set( p_psx->machine, PSX_IRQ_DMA ); psx_irq_set( p_psx->machine, PSX_IRQ_DMA );
} }
else if( ( p_psx->n_dicr & 0x80000000 ) != 0 )
{
verboselog( p_psx, 2, "dma_interrupt_update( %02x, %02x ) interrupt cleared\n", n_int, n_mask );
p_psx->n_dicr &= ~0x80000000;
}
else if( n_int != 0 ) else if( n_int != 0 )
{ {
verboselog( p_psx, 2, "dma_interrupt_update( %02x, %02x ) interrupt not enabled\n", n_int, n_mask ); verboselog( p_psx, 2, "dma_interrupt_update( %02x, %02x ) interrupt not enabled\n", n_int, n_mask );
} }
p_psx->n_dicr &= 0x00ffffff | ( p_psx->n_dicr << 8 );
} }
static void dma_finished(psx_machine *p_psx, int n_channel) static void dma_finished(psx_machine *p_psx, int n_channel)
@ -536,14 +529,18 @@ WRITE32_HANDLER( psx_dma_w )
p_psx->n_dpcp = ( p_psx->n_dpcp & ~mem_mask ) | data; p_psx->n_dpcp = ( p_psx->n_dpcp & ~mem_mask ) | data;
break; break;
case 0x1: case 0x1:
if (data & 0x80000000)
p_psx->n_dicr = ( p_psx->n_dicr & ( 0x80000000 | ~mem_mask ) ) |
( p_psx->n_dicr & ~data & 0x7f000000 & mem_mask ) |
( data & 0x00ffffff & mem_mask );
if( ( p_psx->n_dicr & 0x80000000 ) != 0 && ( p_psx->n_dicr & 0x7f000000 ) == 0 )
{ {
p_psx->n_dicr = ((p_psx->n_dicr &~ data) & 0xff000000) | (p_psx->n_dicr & 0x00ffffff); verboselog( p_psx, 2, "dma interrupt cleared\n" );
p_psx->n_dicr &= ~0x80000000;
} }
p_psx->n_dicr = data & 0x00ffffff;
verboselog( p_psx, 1, "psx_dma_w( %04x, %08x, %08x ) dicr -> %08x\n", offset, data, mem_mask, p_psx->n_dicr ); verboselog( p_psx, 1, "psx_dma_w( %04x, %08x, %08x ) dicr -> %08x\n", offset, data, mem_mask, p_psx->n_dicr );
dma_interrupt_update(p_psx);
break; break;
default: default:
verboselog( p_psx, 0, "psx_dma_w( %04x, %08x, %08x ) Unknown dma control register\n", offset, data, mem_mask ); verboselog( p_psx, 0, "psx_dma_w( %04x, %08x, %08x ) Unknown dma control register\n", offset, data, mem_mask );
@ -702,7 +699,7 @@ static TIMER_CALLBACK( root_finished )
if( ( root->n_mode & PSX_RC_IRQOVERFLOW ) != 0 || if( ( root->n_mode & PSX_RC_IRQOVERFLOW ) != 0 ||
( root->n_mode & PSX_RC_IRQTARGET ) != 0 ) ( root->n_mode & PSX_RC_IRQTARGET ) != 0 )
{ {
psx_irq_set( machine, (n_counter == 3) ? PSX_IRQ_ROOTCOUNTER3 : (PSX_IRQ_ROOTCOUNTER0 << n_counter) ); psx_irq_set( machine, PSX_IRQ_ROOTCOUNTER0 << n_counter );
} }
} }
@ -723,13 +720,15 @@ WRITE32_HANDLER( psx_counter_w )
case 1: case 1:
root->n_count = root_current( p_psx, n_counter ); root->n_count = root_current( p_psx, n_counter );
root->n_start = psxcpu_gettotalcycles(p_psx); root->n_start = psxcpu_gettotalcycles(p_psx);
root->n_mode = data;
if( ( root->n_mode & PSX_RC_RESET ) != 0 ) if( ( data & PSX_RC_RESET ) != 0 )
{ {
data &= ~( PSX_RC_RESET | PSX_RC_STOP );
root->n_count = 0; root->n_count = 0;
} }
root->n_mode = data;
#if 0 #if 0
if( ( data & 0xfca6 ) != 0 || if( ( data & 0xfca6 ) != 0 ||
( ( data & 0x0100 ) != 0 && n_counter != 0 && n_counter != 1 ) || ( ( data & 0x0100 ) != 0 && n_counter != 0 && n_counter != 1 ) ||

View File

@ -3451,8 +3451,9 @@ V-V TP-027
DRIVER( fbaitmcj ) /* 1999 - Fisherman's Bait - Marlin Challenge (GX889 VER. JA) */ DRIVER( fbaitmcj ) /* 1999 - Fisherman's Bait - Marlin Challenge (GX889 VER. JA) */
DRIVER( fbaitmca ) /* 1999 - Fisherman's Bait - Marlin Challenge (GX889 VER. AA) */ DRIVER( fbaitmca ) /* 1999 - Fisherman's Bait - Marlin Challenge (GX889 VER. AA) */
DRIVER( ddr2m ) /* 1999 - Dance Dance Revolution 2nd Mix (GN895 VER. JAA) */ DRIVER( ddr2m ) /* 1999 - Dance Dance Revolution 2nd Mix (GN895 VER. JAA) */
DRIVER( ddr2ml ) /* 1999 - Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB) */
DRIVER( ddr2mla ) /* 1999 - Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA) */
DRIVER( ddrbocd ) /* 1999 - Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA) */ DRIVER( ddrbocd ) /* 1999 - Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA) */
DRIVER( ddr2ml ) /* 1999 - Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA) */
DRIVER( ddr2mc ) /* 1999 - Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA) */ DRIVER( ddr2mc ) /* 1999 - Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA) */
DRIVER( ddr2mc2 ) /* 1999 - Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA) */ DRIVER( ddr2mc2 ) /* 1999 - Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA) */
DRIVER( gtrfrk2m ) /* 1999 - Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD) */ DRIVER( gtrfrk2m ) /* 1999 - Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD) */
@ -3474,15 +3475,24 @@ V-V TP-027
DRIVER( drmn2mpu ) /* 1999 - DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB) */ DRIVER( drmn2mpu ) /* 1999 - DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB) */
DRIVER( dncfrks ) /* 2000 - Dance Freaks (G*874 VER. KAA) */ DRIVER( dncfrks ) /* 2000 - Dance Freaks (G*874 VER. KAA) */
DRIVER( dmx ) /* 2000 - Dance Maniax (G*874 VER. JAA) */ DRIVER( dmx ) /* 2000 - Dance Maniax (G*874 VER. JAA) */
DRIVER( gunmania ) /* 2000 - GunMania (GL906 VER. JAA) */
DRIVER( fghtmn ) /* 2000 - Fighting Mania (QG918 VER. EAA) */
DRIVER( fghtmna ) /* 2000 - Fighting Mania (QG918 VER. AAA) */
DRIVER( pnchmn ) /* 2000 - Punch Mania: Hokuto No Ken (GQ918 VER. JAB) */
DRIVER( pnchmna ) /* 2000 - Punch Mania: Hokuto No Ken (GQ918 VER. JAB, ALT CD) */
DRIVER( fghtmnk ) /* 2000 - Fighting Mania (QG918 VER. KAA) */
DRIVER( fghtmnu ) /* 2000 - Fighting Mania (QG918 VER. IAA) */
DRIVER( dsem ) /* 2000 - Dancing Stage Euro Mix (G*936 VER. EAA) */ DRIVER( dsem ) /* 2000 - Dancing Stage Euro Mix (G*936 VER. EAA) */
DRIVER( gtrfrk3m ) /* 2000 - Guitar Freaks 3rd Mix (GE949 VER. JAC) */ DRIVER( gtrfrk3m ) /* 2000 - Guitar Freaks 3rd Mix (GE949 VER. JAC) */
DRIVER( gtfrk3ma ) /* 2000 - Guitar Freaks 3rd Mix (GE949 VER. JAB) */ DRIVER( gtfrk3ma ) /* 2000 - Guitar Freaks 3rd Mix (GE949 VER. JAB) */
DRIVER( gtfrk3mb ) /* 2000 - Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02) */ DRIVER( gtfrk3mb ) /* 2000 - Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02) */
DRIVER( pnchmn2 ) /* 2000 - Punch Mania 2: Hokuto No Ken (GQA09 JAA) */
DRIVER( salarymc ) /* 2000 - Salary Man Champ (G*A18 VER. JAA) */ DRIVER( salarymc ) /* 2000 - Salary Man Champ (G*A18 VER. JAA) */
DRIVER( ddr3mp ) /* 2000 - Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA) */ DRIVER( ddr3mp ) /* 2000 - Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA) */
DRIVER( pcnfrk3m ) /* 2000 - Percussion Freaks 3rd Mix (G*A23 VER. KAA) */ DRIVER( pcnfrk3m ) /* 2000 - Percussion Freaks 3rd Mix (G*A23 VER. KAA) */
DRIVER( drmn3m ) /* 2000 - DrumMania 3rd Mix (G*A23 VER. JAA) */ DRIVER( drmn3m ) /* 2000 - DrumMania 3rd Mix (G*A23 VER. JAA) */
DRIVER( gtrfrk4m ) /* 2000 - Guitar Freaks 4th Mix (G*A24 VER. JAA) */ DRIVER( gtrfrk4m ) /* 2000 - Guitar Freaks 4th Mix (G*A24 VER. JAA) */
DRIVER( drmn4m ) /* 2000 - DrumMania 4th Mix (G*A25 VER. JAA) */
DRIVER( ddr4m ) /* 2000 - Dance Dance Revolution 4th Mix (G*A33 VER. AAA) */ DRIVER( ddr4m ) /* 2000 - Dance Dance Revolution 4th Mix (G*A33 VER. AAA) */
DRIVER( ddr4mj ) /* 2000 - Dance Dance Revolution 4th Mix (G*A33 VER. JAA) */ DRIVER( ddr4mj ) /* 2000 - Dance Dance Revolution 4th Mix (G*A33 VER. JAA) */
DRIVER( ddr4ms ) /* 2000 - Dance Dance Revolution Solo 4th Mix (G*A33 VER. ABA) */ DRIVER( ddr4ms ) /* 2000 - Dance Dance Revolution Solo 4th Mix (G*A33 VER. ABA) */
@ -3492,18 +3502,31 @@ V-V TP-027
DRIVER( ddr4mp ) /* 2000 - Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA) */ DRIVER( ddr4mp ) /* 2000 - Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA) */
DRIVER( ddr4mps ) /* 2000 - Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JAA) */ DRIVER( ddr4mps ) /* 2000 - Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JAA) */
DRIVER( dmx2m ) /* 2000 - Dance Maniax 2nd Mix (G*A39 VER. JAA) */ DRIVER( dmx2m ) /* 2000 - Dance Maniax 2nd Mix (G*A39 VER. JAA) */
DRIVER( fmania ) /* 2000 - Fighting Mania (918 xx B02) */
DRIVER( gtrfrk5m ) /* 2001 - Guitar Freaks 5th Mix (G*A26 VER. JAA) */ DRIVER( gtrfrk5m ) /* 2001 - Guitar Freaks 5th Mix (G*A26 VER. JAA) */
DRIVER( ddr5m ) /* 2001 - Dance Dance Revolution 5th Mix (G*A27 VER. JAA) */ DRIVER( ddr5m ) /* 2001 - Dance Dance Revolution 5th Mix (G*A27 VER. JAA) */
DRIVER( dmx2majp ) /* 2001 - Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA ) */ DRIVER( dmx2majp ) /* 2001 - Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA ) */
DRIVER( mamboagg ) /* 2001 - Mambo A Go-Go (GQA40 VER. JAB) */ DRIVER( mamboagg ) /* 2001 - Mambo A Go-Go (GQA40 VER. JAB) */
DRIVER( drmn5m ) /* 2001 - DrumMania 5th Mix (G*B05 VER. JAA) */
DRIVER( gtrfrk6m ) /* 2001 - Guitar Freaks 6th Mix (G*B06 VER. JAA) */ DRIVER( gtrfrk6m ) /* 2001 - Guitar Freaks 6th Mix (G*B06 VER. JAA) */
DRIVER( gtrfrk7m ) /* 2001 - Guitar Freaks 6th Mix (G*B17 VER. JAA) */ DRIVER( drmn6m ) /* 2001 - DrumMania 6th Mix (G*B16 VER. JAA) */
DRIVER( gtrfrk7m ) /* 2001 - Guitar Freaks 7th Mix (G*B17 VER. JAA) */
DRIVER( ddrmax ) /* 2001 - DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA) */ DRIVER( ddrmax ) /* 2001 - DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA) */
DRIVER( ddrmax2 ) /* 2002 - DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA) */ DRIVER( ddrmax2 ) /* 2002 - DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA) */
DRIVER( mrtlbeat ) /* 2002 - Martial Beat (Martial Beat (G*B47 VER. JBA) */
DRIVER( drmn7m ) /* 2002 - DrumMania 7th Mix power-up ver. (G*C07 VER. JBA) */
DRIVER( drmn7ma ) /* 2002 - DrumMania 7th Mix (G*C07 VER. JAA) */
DRIVER( gtrfrk8m ) /* 2002 - Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA) */
DRIVER( gtrfrk8ma ) /* 2002 - Guitar Freaks 8th Mix (G*C08 VER. JAA) */
DRIVER( dsem2 ) /* 2002 - Dancing Stage Euro Mix 2 (G*C23 VER. EAA) */ DRIVER( dsem2 ) /* 2002 - Dancing Stage Euro Mix 2 (G*C23 VER. EAA) */
DRIVER( ddrextrm ) /* 2002 - Dance Dance Revolution Extreme (G*C36 VER. JAA) */ DRIVER( ddrextrm ) /* 2002 - Dance Dance Revolution Extreme (G*C36 VER. JAA) */
DRIVER( drmn8m ) /* 2003 - DrumMania 8th Mix (G*C38 VER. JAA) */
DRIVER( gtrfrk9m ) /* 2003 - Guitar Freaks 9th Mix (G*C39 VER. JAA) */
DRIVER( drmn9m ) /* 2003 - DrumMania 9th Mix (G*D09 VER. JAA) */
DRIVER( gtfrk10m ) /* 2003 - Guitar Freaks 10th Mix (G*D10 VER. JAB) */
DRIVER( gtfrk10ma ) /* 2003 - Guitar Freaks 10th Mix (G*D10 VER. JAA) */
DRIVER( gtfrk10mb ) /* 2003 - Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA) */
DRIVER( gtfrk11m ) /* 2004 - Guitar Freaks 11th Mix (G*D39 VER. JAA) */ DRIVER( gtfrk11m ) /* 2004 - Guitar Freaks 11th Mix (G*D39 VER. JAA) */
DRIVER( drmn10m ) /* 2004 - DrumMania 10th Mix (G*D40 VER. JAA) */
/* Konami Twinkle games */ /* Konami Twinkle games */
DRIVER( gq863 ) DRIVER( gq863 )