diff options
author | angelosa <salese_corp_ltd@email.it> | 2017-09-19 04:06:27 +0200 |
---|---|---|
committer | angelosa <salese_corp_ltd@email.it> | 2017-09-19 04:06:27 +0200 |
commit | dbf88adb64077ed3f2c2901d8e349f85265a5b4e (patch) | |
tree | 6e6c8489e6887da1d1e0916b407849fa61878cfa | |
parent | 305bef493c86da2e9ac170843989cad9ee9c3318 (diff) |
buggychl.cpp: fixed sound timer irq frequency, fixes enter initials BGM tempo [Angelo Salese]
-rw-r--r-- | src/mame/drivers/buggychl.cpp | 16 | ||||
-rw-r--r-- | src/mame/drivers/flstory.cpp | 8 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp index e56a176e94d..466f4ee380b 100644 --- a/src/mame/drivers/buggychl.cpp +++ b/src/mame/drivers/buggychl.cpp @@ -198,13 +198,14 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state ) AM_RANGE(0x9000, 0x9fff) AM_WRITE(buggychl_sprite_lookup_w) AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1") AM_WRITE(buggychl_chargen_w) AM_SHARE("charram") AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("videoram") + AM_RANGE(0xd000, 0xd000) AM_WRITENOP // ??? AM_RANGE(0xd100, 0xd100) AM_MIRROR(0x00ff) AM_WRITE(buggychl_ctrl_w) AM_RANGE(0xd200, 0xd200) AM_MIRROR(0x00ff) AM_WRITE(bankswitch_w) AM_RANGE(0xd300, 0xd300) AM_MIRROR(0x00f8) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) // d301 = flp stuff, unused? // d302 = mcu reset latched d0 AM_RANGE(0xd303, 0xd303) AM_MIRROR(0x00f8) AM_WRITE(buggychl_sprite_lookup_bank_w) - // d304-d307 is SCCON, which seems to be for a bezel mounted 7seg score/time display like Grand Champion has + AM_RANGE(0xd304, 0xd307) AM_WRITENOP // d304-d307 is SCCON, which seems to be for a bezel mounted 7seg score/time display like Grand Champion has AM_RANGE(0xd400, 0xd400) AM_MIRROR(0x00fc) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w) AM_RANGE(0xd401, 0xd401) AM_MIRROR(0x00fc) AM_READ(mcu_status_r) AM_RANGE(0xd500, 0xd57f) AM_WRITEONLY AM_SHARE("spriteram") @@ -221,6 +222,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state ) // AM_RANGE(0xd613, 0xd613) AM_MIRROR(0x00e4) AM_WRITE(sound_reset_w) AM_RANGE(0xd618, 0xd618) AM_MIRROR(0x00e7) AM_WRITENOP /* accelerator clear; TODO: should we emulate the proper quadrature counter here? */ AM_RANGE(0xd700, 0xd7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xd820, 0xd83f) AM_RAM // TODO AM_RANGE(0xd840, 0xd85f) AM_WRITEONLY AM_SHARE("scrollv") AM_RANGE(0xdb00, 0xdbff) AM_WRITEONLY AM_SHARE("scrollh") AM_RANGE(0xdc04, 0xdc04) AM_WRITEONLY /* should be fg scroll */ @@ -431,7 +433,9 @@ static MACHINE_CONFIG_START( buggychl ) MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz/2) /* 4 MHz according to schematics */ MCFG_CPU_PROGRAM_MAP(sound_map) - MCFG_CPU_PERIODIC_INT_DRIVER(buggychl_state, irq0_line_hold, 60*60) /* irq is timed, tied to the cpu clock and not to vblank */ + MCFG_CPU_PERIODIC_INT_DRIVER(buggychl_state, irq0_line_hold, 2*60) // timer irq + // schematics shows a 61.035 (x2?) Hz, similar to flstory.cpp and other Taito MSM5232 based games. + // apparently schematics also shows a switch for the timer irq that makes it to run at half speed, no idea where this is located. /* audiocpu nmi is caused by (main->sound semaphore)&&(sound_nmi_enabled), identical to bubble bobble. */ // schematics show a secondary sound z80 cpu as well, running at the same speed as the audiocpu; unclear if actually populated, or if it only existed on a certain hardware release (cocktail deluxe version?) @@ -448,6 +452,8 @@ static MACHINE_CONFIG_START( buggychl ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + // derived from ladyfrog.cpp, causes glitches? +// MCFG_SCREEN_RAW_PARAMS( XTAL_8MHz, 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHz MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl) MCFG_SCREEN_PALETTE("palette") @@ -468,17 +474,17 @@ static MACHINE_CONFIG_START( buggychl ) MCFG_GENERIC_LATCH_8_ADD("soundlatch2") - MCFG_SOUND_ADD("ay1", YM2149, 8000000/4) + MCFG_SOUND_ADD("ay1", YM2149, XTAL_8MHz/4) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(buggychl_state, port_a_0_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(buggychl_state, port_b_0_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_SOUND_ADD("ay2", YM2149, 8000000/4) + MCFG_SOUND_ADD("ay2", YM2149, XTAL_8MHz/4) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(buggychl_state, port_a_1_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(buggychl_state, port_b_1_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_SOUND_ADD("msm", MSM5232, 2000000) + MCFG_SOUND_ADD("msm", MSM5232, XTAL_8MHz/4) MCFG_MSM5232_SET_CAPACITORS(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) */ MCFG_SOUND_ROUTE(0, "mono", 1.0) // pin 28 2'-1 MCFG_SOUND_ROUTE(1, "mono", 1.0) // pin 29 4'-1 diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp index 43af1f10536..0d9de3102f5 100644 --- a/src/mame/drivers/flstory.cpp +++ b/src/mame/drivers/flstory.cpp @@ -775,7 +775,7 @@ static MACHINE_CONFIG_START( flstory ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - // derived from ladyfrog.cpp + // derived from ladyfrog.cpp, guess MCFG_SCREEN_RAW_PARAMS( XTAL_8MHz, 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHz MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_SCREEN_PALETTE("palette") @@ -843,7 +843,7 @@ static MACHINE_CONFIG_START( onna34ro ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - // derived from ladyfrog.cpp + // derived from ladyfrog.cpp, guess MCFG_SCREEN_RAW_PARAMS( XTAL_8MHz, 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHz MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_SCREEN_PALETTE("palette") @@ -921,7 +921,7 @@ static MACHINE_CONFIG_START( victnine ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - // derived from ladyfrog.cpp + // derived from ladyfrog.cpp, guess MCFG_SCREEN_RAW_PARAMS( XTAL_8MHz, 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHzs MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine) MCFG_SCREEN_PALETTE("palette") @@ -993,7 +993,7 @@ static MACHINE_CONFIG_START( rumba ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - // derived from ladyfrog.cpp + // derived from ladyfrog.cpp, guess MCFG_SCREEN_RAW_PARAMS( XTAL_8MHz, 510, 0, 256, 262, 2*8, 30*8 ) // pixel clock appears to run at 8 MHz MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba) MCFG_SCREEN_PALETTE("palette") |