mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
buggychl.cpp: fixed sound timer irq frequency, fixes enter initials BGM tempo [Angelo Salese]
This commit is contained in:
parent
305bef493c
commit
dbf88adb64
@ -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
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user