diff options
| author | 2026-05-10 10:45:00 +0200 | |
|---|---|---|
| committer | 2026-05-10 15:13:02 +0200 | |
| commit | fbe1b98b5e349f27fd1d9c8f2de57bf9307df579 (patch) | |
| tree | 66c2e36f48b2a478295dbffec311cb8c161525f9 | |
| parent | c0bba168a6fb68845bf47e41d47b0a5bf0aa3c60 (diff) | |
namcos21_c67/de: remove unneeded scanline timer
| -rw-r--r-- | src/mame/namco/namcos21_3d.cpp | 10 | ||||
| -rw-r--r-- | src/mame/namco/namcos21_3d.h | 1 | ||||
| -rw-r--r-- | src/mame/namco/namcos21_c67.cpp | 28 | ||||
| -rw-r--r-- | src/mame/namco/namcos21_de.cpp | 13 |
4 files changed, 19 insertions, 33 deletions
diff --git a/src/mame/namco/namcos21_3d.cpp b/src/mame/namco/namcos21_3d.cpp index c290b682a59..c760bcc899d 100644 --- a/src/mame/namco/namcos21_3d.cpp +++ b/src/mame/namco/namcos21_3d.cpp @@ -26,11 +26,6 @@ namcos21_3d_device::namcos21_3d_device(const machine_config &mconfig, const char void namcos21_3d_device::device_start() { - allocate_poly_framebuffer(); -} - -void namcos21_3d_device::allocate_poly_framebuffer() -{ assert(m_num_palettes != 0); assert(m_framebuffer_size > 0); @@ -70,10 +65,10 @@ void namcos21_3d_device::copy_visible_poly_framebuffer(bitmap_ind16 &bitmap, con for (int sy = clip.top(); sy <= clip.bottom(); sy++) { u16 *const dest = &bitmap.pix(sy); - const u16 *const pPen = m_poly_framebuffer_pens2.get() + m_poly_frame_width * sy; + const u16 *const source = m_poly_framebuffer_pens2.get() + m_poly_frame_width * sy; for (int sx = clip.left(); sx <= clip.right(); sx++) { - const u16 pen = pPen[sx]; + const u16 pen = source[sx]; if (pen) dest[sx] = pen; } @@ -203,6 +198,7 @@ void namcos21_3d_device::rendertri(const n21_vertex *v0, const n21_vertex *v1, c ystart = 0; } yend = std::min(yend, m_poly_frame_height); + for (int y = ystart; y < yend; y++) { renderscanline_flat(&e1, &e2, y, color, zsort); diff --git a/src/mame/namco/namcos21_3d.h b/src/mame/namco/namcos21_3d.h index 5c46e3284d2..5c27c0c58f4 100644 --- a/src/mame/namco/namcos21_3d.h +++ b/src/mame/namco/namcos21_3d.h @@ -56,7 +56,6 @@ private: void renderscanline_flat(const edge *e1, const edge *e2, int sy, u16 color, int zsort); void rendertri(const n21_vertex *v0, const n21_vertex *v1, const n21_vertex *v2, u16 color, int zsort); void blit_single_quad(int sx[4], int sy[4], int zcode[4], u16 color); - void allocate_poly_framebuffer(); std::unique_ptr<u16[]> m_poly_framebuffer_pens; std::unique_ptr<u16[]> m_poly_framebuffer_z; diff --git a/src/mame/namco/namcos21_c67.cpp b/src/mame/namco/namcos21_c67.cpp index 81310f681bc..69a322eed55 100644 --- a/src/mame/namco/namcos21_c67.cpp +++ b/src/mame/namco/namcos21_c67.cpp @@ -283,7 +283,6 @@ Palette: #include "cpu/m6809/m6809.h" #include "machine/nvram.h" #include "namcoio_gearbox.h" -#include "machine/timer.h" #include "sound/c140.h" #include "sound/ymopm.h" @@ -373,8 +372,7 @@ private: void sound_reset_w(u8 data); void system_reset_w(u8 data); void reset_all_subcpus(int state); - - TIMER_DEVICE_CALLBACK_MEMBER(screen_scanline); + void vblank_irq(int state); bool sprite_mix_callback(u16 &dest, u8 &destpri, u16 colbase, u16 src, int srcpri, int pri); void mix_layer0_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -785,6 +783,16 @@ void namcos21_c67_state::reset_all_subcpus(int state) m_slave_intc->reset(); } +void namcos21_c67_state::vblank_irq(int state) +{ + if (state) + { + m_master_intc->vblank_irq_trigger(); + m_slave_intc->vblank_irq_trigger(); + m_c68->ext_interrupt(ASSERT_LINE); + } +} + void namcos21_c67_state::machine_reset() { // Initialise the bank select in the sound CPU @@ -804,25 +812,12 @@ void namcos21_c67_state::machine_start() m_audiobank->configure_entry(i, memregion("audiocpu")->base() + (i % max) * 0x4000); } -TIMER_DEVICE_CALLBACK_MEMBER(namcos21_c67_state::screen_scanline) -{ - int scanline = param; - - if (scanline == 240 * 2) - { - m_master_intc->vblank_irq_trigger(); - m_slave_intc->vblank_irq_trigger(); - m_c68->ext_interrupt(ASSERT_LINE); - } -} - // starblad, solvalou, aircomb, cybsled base state void namcos21_c67_state::namcos21(machine_config &config) { // basic machine hardware M68000(config, m_maincpu, 49.152_MHz_XTAL / 4); // Master m_maincpu->set_addrmap(AS_PROGRAM, &namcos21_c67_state::master_map); - TIMER(config, "scantimer").configure_scanline(FUNC(namcos21_c67_state::screen_scanline), "screen", 0, 1); M68000(config, m_slave, 49.152_MHz_XTAL / 4); // Slave m_slave->set_addrmap(AS_PROGRAM, &namcos21_c67_state::slave_map); @@ -862,6 +857,7 @@ void namcos21_c67_state::namcos21(machine_config &config) m_screen->set_raw(38.76922_MHz_XTAL / 4 * 2, 616, 0, 496, 262 + 263, 0, 480); // x2 is for interlace m_screen->set_screen_update(FUNC(namcos21_c67_state::screen_update)); m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(namcos21_c67_state::vblank_irq)); NAMCOS21_3D(config, m_namcos21_3d, 0); m_namcos21_3d->set_framebuffer_size(496, 480); diff --git a/src/mame/namco/namcos21_de.cpp b/src/mame/namco/namcos21_de.cpp index 0f4321be311..4b3b403015d 100644 --- a/src/mame/namco/namcos21_de.cpp +++ b/src/mame/namco/namcos21_de.cpp @@ -39,7 +39,6 @@ TODO: #include "cpu/m6809/m6809.h" #include "cpu/tms320c2x/tms320c2x.h" #include "machine/nvram.h" -#include "machine/timer.h" #include "sound/c140.h" #include "sound/mb87077.h" #include "sound/mixer.h" @@ -106,8 +105,7 @@ private: void sound_reset_w(u8 data); void system_reset_w(u8 data); void reset_all_subcpus(int state); - - TIMER_DEVICE_CALLBACK_MEMBER(screen_scanline); + void vblank_irq(int state); bool sprite_mix_callback(u16 &dest, u8 &destpri, u16 colbase, u16 src, int srcpri, int pri); u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -155,7 +153,6 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config) // basic machine hardware M68000(config, m_maincpu, 49.152_MHz_XTAL / 4); // Master m_maincpu->set_addrmap(AS_PROGRAM, &namco_de_pcbstack_device::driveyes_master_map); - TIMER(config, "scantimer").configure_scanline(FUNC(namco_de_pcbstack_device::screen_scanline), "screen", 0, 1); M68000(config, m_slave, 49.152_MHz_XTAL / 4); // Slave m_slave->set_addrmap(AS_PROGRAM, &namco_de_pcbstack_device::driveyes_slave_map); @@ -205,6 +202,7 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config) m_screen->set_raw(38.76922_MHz_XTAL / 4 * 2, 616, 0, 496, 262 + 263, 0, 480); // x2 is for interlace m_screen->set_screen_update(FUNC(namco_de_pcbstack_device::screen_update)); m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(namco_de_pcbstack_device::vblank_irq)); PALETTE(config, m_palette).set_format(palette_device::xBRG_888, 0x10000/2); @@ -452,12 +450,9 @@ void namco_de_pcbstack_device::reset_all_subcpus(int state) m_slave_intc->reset(); } - -TIMER_DEVICE_CALLBACK_MEMBER(namco_de_pcbstack_device::screen_scanline) +void namco_de_pcbstack_device::vblank_irq(int state) { - int scanline = param; - - if (scanline == 240 * 2) + if (state) { m_master_intc->vblank_irq_trigger(); m_slave_intc->vblank_irq_trigger(); |
