summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitdbf88adb64077ed3f2c2901d8e349f85265a5b4e (patch)
tree6e6c8489e6887da1d1e0916b407849fa61878cfa
parent305bef493c86da2e9ac170843989cad9ee9c3318 (diff)
buggychl.cpp: fixed sound timer irq frequency, fixes enter initials BGM tempo [Angelo Salese]
-rw-r--r--src/mame/drivers/buggychl.cpp16
-rw-r--r--src/mame/drivers/flstory.cpp8
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")