From c25f9c02225694912e2a72e72c65c3f1de968d36 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Fri, 18 Mar 2011 16:48:28 +0000 Subject: [PATCH] Another MESS specific update --- src/mame/drivers/megadriv.c | 4 +++- src/mame/machine/megadriv.c | 22 +++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/megadriv.c b/src/mame/drivers/megadriv.c index dc99ef38d29..5d68638e8f0 100644 --- a/src/mame/drivers/megadriv.c +++ b/src/mame/drivers/megadriv.c @@ -686,6 +686,8 @@ static DRIVER_INIT( mess_32x ) { DRIVER_INIT_CALL(_32x); DRIVER_INIT_CALL(mess_md_common); + megadrive_region_export = 1; + megadrive_region_pal = 0; } static MACHINE_CONFIG_DERIVED( ms_32x, genesis_32x ) @@ -1101,4 +1103,4 @@ CONS( 1992, wmega, xeye, 0, genesis_scd, md, md_jpn, " CONS( 1993, wmegam2, xeye, 0, genesis_scd, md, md_jpn, "Victor", "Wondermega M2 (Japan, NTSC)", GAME_NOT_WORKING ) CONS( 1994, cdx, 0, 0, genesis_scd, md, genesis, "Sega", "CDX (USA, NTSC)", GAME_NOT_WORKING ) CONS( 1994, multmega, cdx, 0, genesis_scd, md, md_eur, "Sega", "Multi-Mega (Europe, PAL)", GAME_NOT_WORKING ) -CONS( 1994, 32x_scd, segacd, 0, genesis_32x_scd, md_sel, mess_32x, "Sega", "Sega CD (USA, NTSC, w/32X)", GAME_NOT_WORKING ) +CONS( 1994, 32x_scd, 0, 0, genesis_32x_scd, md_sel, mess_32x, "Sega", "Sega CD (USA, NTSC, w/32X)", GAME_NOT_WORKING ) diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index bbc68877c8c..4fd1be26641 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -2742,7 +2742,7 @@ static WRITE16_HANDLER( _32x_dreq_common_w ) if((a15106_reg & 4) == 0) { - printf("attempting to WRITE FIFO with 68S cleared!"); + printf("attempting to WRITE FIFO with 68S cleared!\n"); // corpse32 return; } @@ -4744,13 +4744,13 @@ UINT8 CDC_Reg_r(void) { int reg = CDC_REG0 & 0xF; UINT8 ret = 0; - int decode[0x10] = { 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 }; + UINT16 decoderegs = 0x73F2; - if (decode[reg]) + if ((decoderegs>>reg)&1) CDC_DECODE |= (1 << reg); - if (reg!=REG_R_STAT3) - CDC_REG0 = (CDC_REG0 & 0xFFF0) | (reg+1); + //if (reg!=REG_R_STAT3) + CDC_REG0 = (CDC_REG0 & 0xFFF0) | ((reg+1)&0xf); switch (reg) @@ -4777,7 +4777,7 @@ UINT8 CDC_Reg_r(void) // ?? if ((CDC_CTRLB0 & 0x80) && (CDC_IFCTRL & 0x20)) { - if ((CDC_DECODE & 0x73F2) == 0x73F2) + if ((CDC_DECODE & decoderegs) == decoderegs) CDC_STATB3 = 0x80; } break; @@ -9781,7 +9781,7 @@ MACHINE_CONFIG_DERIVED( genesis_scd, megadriv ) MCFG_TIMER_ADD("scd_dma_timer", scd_dma_timer_callback) - MCFG_QUANTUM_PERFECT_CPU("maincpu") + MCFG_QUANTUM_PERFECT_CPU("segacd_68k") // perfect sync to the fastest cpu MACHINE_CONFIG_END /* Different Softlists for different regions (for now at least) */ @@ -9808,6 +9808,10 @@ MACHINE_CONFIG_DERIVED( genesis_32x_scd, genesis_32x ) MCFG_CPU_ADD("segacd_68k", M68000, SEGACD_CLOCK ) /* 12.5 MHz */ MCFG_CPU_PROGRAM_MAP(segacd_map) + MCFG_TIMER_ADD("sw_timer", NULL) //stopwatch timer + MCFG_NVRAM_ADD_0FILL("backupram") + MCFG_TIMER_ADD("scd_dma_timer", scd_dma_timer_callback) + MCFG_SOUND_ADD( "cdda", CDDA, 0 ) MCFG_SOUND_ROUTE( 0, "lspeaker", 0.50 ) MCFG_SOUND_ROUTE( 1, "rspeaker", 0.50 ) @@ -9817,6 +9821,10 @@ MACHINE_CONFIG_DERIVED( genesis_32x_scd, genesis_32x ) MCFG_SOUND_ROUTE( 1, "rspeaker", 0.25 ) MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("scd_cdrom") + MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") + + MCFG_QUANTUM_PERFECT_CPU("32x_master_sh2") MACHINE_CONFIG_END