diff options
| author | 2025-08-24 16:56:33 -0400 | |
|---|---|---|
| committer | 2025-08-24 16:58:48 -0400 | |
| commit | d3e8fc1155ca539d6cb16b075fdead2e20963705 (patch) | |
| tree | e642fbdac4ff2879010d8e6f221d6d2ad1d78882 | |
| parent | 05a1dccaa0d5b8c1cf97e0d8826b3e71a84c1245 (diff) | |
exidy/circus.cpp, exidy/carpolo.cpp: Use raw parameters for screen timings
- circus: Note purpose of PROMs
| -rw-r--r-- | src/mame/exidy/carpolo.cpp | 11 | ||||
| -rw-r--r-- | src/mame/exidy/circus.cpp | 19 | ||||
| -rw-r--r-- | src/mame/exidy/circus_v.cpp | 2 |
3 files changed, 13 insertions, 19 deletions
diff --git a/src/mame/exidy/carpolo.cpp b/src/mame/exidy/carpolo.cpp index 14edc3921bb..4909a85f1cd 100644 --- a/src/mame/exidy/carpolo.cpp +++ b/src/mame/exidy/carpolo.cpp @@ -225,17 +225,17 @@ GFXDECODE_END void carpolo_state::carpolo(machine_config &config) { // basic machine hardware - M6502(config, m_maincpu, XTAL(11'289'000)/12); // 940.75 kHz + M6502(config, m_maincpu, 11.289_MHz_XTAL / 12); // 940.75 kHz m_maincpu->set_addrmap(AS_PROGRAM, &carpolo_state::main_map); - pia6821_device &pia0(PIA6821(config, "pia0")); + pia6821_device &pia0(PIA6821(config, "pia0", 11.289_MHz_XTAL / 12)); pia0.readpb_handler().set(FUNC(carpolo_state::pia_0_port_b_r)); pia0.writepa_handler().set(FUNC(carpolo_state::pia_0_port_a_w)); pia0.writepb_handler().set(FUNC(carpolo_state::pia_0_port_b_w)); pia0.ca2_handler().set(FUNC(carpolo_state::coin1_interrupt_clear_w)); pia0.cb2_handler().set(FUNC(carpolo_state::coin2_interrupt_clear_w)); - pia6821_device &pia1(PIA6821(config, "pia1")); + pia6821_device &pia1(PIA6821(config, "pia1", 11.289_MHz_XTAL / 12)); pia1.readpa_handler().set(FUNC(carpolo_state::pia_1_port_a_r)); pia1.readpb_handler().set(FUNC(carpolo_state::pia_1_port_b_r)); pia1.ca2_handler().set(FUNC(carpolo_state::coin3_interrupt_clear_w)); @@ -271,10 +271,7 @@ void carpolo_state::carpolo(machine_config &config) // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate - screen.set_size(256, 256); - screen.set_visarea(0, 239, 0, 255); + screen.set_raw(11.289_MHz_XTAL / 2, 336, 0, 240, 280, 0, 256); screen.set_screen_update(FUNC(carpolo_state::screen_update)); screen.screen_vblank().set(FUNC(carpolo_state::screen_vblank)); screen.set_palette(m_palette); diff --git a/src/mame/exidy/circus.cpp b/src/mame/exidy/circus.cpp index 6bf9858fb38..bb8ab6b6167 100644 --- a/src/mame/exidy/circus.cpp +++ b/src/mame/exidy/circus.cpp @@ -40,7 +40,7 @@ NOTES: - Circus: Taito licensed and released the game as "Acrobat TV" TODO: -- generic video timing (vsync, vblank, # of scanlines) +- circus: use PROM data to draw framing box and diving boards - circus/ripcord collision detection is accurate? - crash: irq timing - improve discrete sound @@ -358,16 +358,13 @@ GFXDECODE_END void circus_state::base_mcfg(machine_config &config) { // basic machine hardware - M6502(config, m_maincpu, XTAL(11'289'000) / 16); // 705.562kHz + M6502(config, m_maincpu, 11.289_MHz_XTAL / 16); // 705.562kHz m_maincpu->set_addrmap(AS_PROGRAM, &circus_state::main_map); // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); // needed for proper hardware collisions - m_screen->set_refresh_hz(57); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(3500)); // complete guess - m_screen->set_size(32*8, 32*8); - m_screen->set_visarea(0*8, 31*8-1, 0*8, 32*8-1); + m_screen->set_raw(11.289_MHz_XTAL / 2, 42*8, 0, 31*8, 280, 0, 256); m_screen->set_screen_update(FUNC(circus_state::screen_update)); m_screen->set_palette(m_palette); @@ -473,7 +470,7 @@ ROM_START( circus ) ROM_REGION( 0x0200, "gfx2", 0 ) // clown sprite ROM_LOAD( "9012.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) - ROM_REGION( 0x400, "proms", 0 ) // timing? not used by the emulation, dumped for the circusb bootleg but might match + ROM_REGION( 0x400, "proms", 0 ) // line drawing; not used by the emulation, dumped for the circusb bootleg but might match ROM_LOAD( "dm74s570-d4.4d", 0x000, 0x200, BAD_DUMP CRC(aad8da33) SHA1(1d60a6b75b94f5be5bad190ef56e9e3da20bf81a) ) ROM_LOAD( "dm74s570-d5.5d", 0x200, 0x200, BAD_DUMP CRC(ed2493fa) SHA1(57ee357b68383b0880bfa385820605bede500747) ) ROM_END @@ -498,7 +495,7 @@ ROM_START( circuso ) // older set, there exist several bootlegs identical to thi ROM_REGION( 0x0200, "gfx2", 0 ) // clown sprite ROM_LOAD( "9012.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) - ROM_REGION( 0x400, "proms", 0 ) // timing? not used by the emulation, dumped for the circusb bootleg but might match + ROM_REGION( 0x400, "proms", 0 ) // line drawing; not used by the emulation, dumped for the circusb bootleg but might match ROM_LOAD( "dm74s570-d4.4d", 0x000, 0x200, BAD_DUMP CRC(aad8da33) SHA1(1d60a6b75b94f5be5bad190ef56e9e3da20bf81a) ) ROM_LOAD( "dm74s570-d5.5d", 0x200, 0x200, BAD_DUMP CRC(ed2493fa) SHA1(57ee357b68383b0880bfa385820605bede500747) ) ROM_END @@ -523,7 +520,7 @@ ROM_START( springbd ) ROM_REGION( 0x0200, "gfx2", 0 ) // clown sprite ROM_LOAD( "93448.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) - ROM_REGION( 0x400, "proms", 0 ) // timing? not used by the emulation, dumped for the circusb bootleg but should match + ROM_REGION( 0x400, "proms", 0 ) // line drawing; not used by the emulation, dumped for the circusb bootleg but should match ROM_LOAD( "dm74s570-d4.4d", 0x000, 0x200, BAD_DUMP CRC(aad8da33) SHA1(1d60a6b75b94f5be5bad190ef56e9e3da20bf81a) ) ROM_LOAD( "dm74s570-d5.5d", 0x200, 0x200, BAD_DUMP CRC(ed2493fa) SHA1(57ee357b68383b0880bfa385820605bede500747) ) ROM_END @@ -548,7 +545,7 @@ ROM_START( robotbwl ) ROM_REGION( 0x0020, "gfx2", ROMREGION_INVERT ) // ball sprite ROM_LOAD( "6000.14d", 0x0000, 0x0020, CRC(a402ac06) SHA1(3bd75630786bcc86d9e9fbc826adc909eef9b41f) ) - ROM_REGION( 0x0100, "proms", 0 ) // timing? not used by the emulation + ROM_REGION( 0x0100, "proms", 0 ) // line drawing; not used by the emulation ROM_LOAD( "5000.4d", 0x0000, 0x0020, NO_DUMP ) // both of these are MMI6306-1J (N82S131 equivalent) BPROMs ROM_LOAD( "5001.5d", 0x0020, 0x0020, NO_DUMP ) ROM_END @@ -573,7 +570,7 @@ ROM_START( trapeze ) // loose roms labelled with pencil ROM_REGION( 0x0200, "gfx2", 0 ) // clown sprite ROM_LOAD( "9012.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) - ROM_REGION( 0x400, "proms", 0 ) // timing? not used by the emulation, dumped for the circusb bootleg but might match + ROM_REGION( 0x400, "proms", 0 ) // line drawing; not used by the emulation, dumped for the circusb bootleg but might match ROM_LOAD( "dm74s570-d4.4d", 0x000, 0x200, BAD_DUMP CRC(aad8da33) SHA1(1d60a6b75b94f5be5bad190ef56e9e3da20bf81a) ) ROM_LOAD( "dm74s570-d5.5d", 0x200, 0x200, BAD_DUMP CRC(ed2493fa) SHA1(57ee357b68383b0880bfa385820605bede500747) ) ROM_END diff --git a/src/mame/exidy/circus_v.cpp b/src/mame/exidy/circus_v.cpp index 60da4669a35..635e0060b29 100644 --- a/src/mame/exidy/circus_v.cpp +++ b/src/mame/exidy/circus_v.cpp @@ -90,7 +90,7 @@ void circus_state::draw_sprite_collision(bitmap_ind16 &bitmap, const rectangle & void circus_state::draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect) { - // The sync generator hardware is used to draw the border and diving boards + // The PROMs are used to draw the border and diving boards draw_line(bitmap, cliprect, 0, 18, 255, 18, 0); draw_line(bitmap, cliprect, 0, 249, 255, 249, 1); draw_line(bitmap, cliprect, 0, 18, 0, 248, 0); |
