diff options
author | hap <happppp@users.noreply.github.com> | 2021-02-11 14:45:53 +0100 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-02-11 14:46:04 +0100 |
commit | 20ba4411dfface775f855d8274b16bcdca6667d1 (patch) | |
tree | a7e04e1c48c2c5b730c3ff2108ba00da03718d89 | |
parent | e0b0072ef0239ab4fa1d418d54fb4a0a5f0a7729 (diff) |
blockch: add notes
-rw-r--r-- | src/mame/drivers/blockch.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/mame/drivers/blockch.cpp b/src/mame/drivers/blockch.cpp index f096c5f6c1f..346e13b5cab 100644 --- a/src/mame/drivers/blockch.cpp +++ b/src/mame/drivers/blockch.cpp @@ -10,12 +10,14 @@ Hardware notes: - NEC 8228, 2*NEC 8255C - 4KB ROM (4*MB8518) - 256 bytes SRAM(2*MB8101), 1KB SRAM(2*M58754S) -- 1bpp bitmap + ball sprite +- 1bpp bitmap + ball sprite, paddle sprite - discrete sound - 15 switches (not the usual small dipswitches, but separate large switches) TODO: -- paddle sprite and missing (presumed) ball vs paddle collision detection +- missing paddle position read (or maybe ball vs paddle collision detection) +- interrupts are wrong, it looks like it expects IN.2 0x40 to be low for a while before the 2nd irq +- is mirror(0x08) on the PPIs correct? it reads from 0x1c what may be paddle related too - video timing is wrong - identify remaining switches - the flyer photo shows a green screen, assumed to be an overlay on a B&W CRT @@ -113,8 +115,13 @@ u32 blockch_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, co // draw paddle // TODO: preliminary int py = m_inputs[3]->read(); - if (cliprect.contains(py, 10)) - bitmap.pix(py, 10) = rgb_t::white(); + int px[2] = { 186, 46 }; + + for (int y = py; y < (py + 20); y++) + for (int i = 0; i < 2; i++) + for (int x = px[i]; x < (px[i] + 2); x++) + if (cliprect.contains(x, y)) + bitmap.pix(y, x) = rgb_t::white(); return 0; } @@ -224,7 +231,7 @@ static INPUT_PORTS_START( blockch ) PORT_DIPNAME( 0x10, 0x10, "Unknown 2_10" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Unknown 2_20" ) + PORT_DIPNAME( 0x20, 0x00, "Unknown 2_20" ) // collision related? PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") @@ -233,7 +240,7 @@ static INPUT_PORTS_START( blockch ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_START("IN.3") - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) + PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) INPUT_PORTS_END |