summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ariedlmayer@gmail.com>2025-08-24 16:56:33 -0400
committer AJR <ariedlmayer@gmail.com>2025-08-24 16:58:48 -0400
commitd3e8fc1155ca539d6cb16b075fdead2e20963705 (patch)
treee642fbdac4ff2879010d8e6f221d6d2ad1d78882
parent05a1dccaa0d5b8c1cf97e0d8826b3e71a84c1245 (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.cpp11
-rw-r--r--src/mame/exidy/circus.cpp19
-rw-r--r--src/mame/exidy/circus_v.cpp2
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);