mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
yunsun16.cpp: IRQ modernization (nw)
This commit is contained in:
parent
626194e842
commit
d4b142b7b1
@ -117,6 +117,11 @@ WRITE16_MEMBER(yunsun16_state::vram_w)
|
||||
m_tilemap[Layer]->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
void yunsun16_state::int_ack_w(uint8_t data)
|
||||
{
|
||||
m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE);
|
||||
}
|
||||
|
||||
void yunsun16_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
@ -132,7 +137,7 @@ void yunsun16_state::main_map(address_map &map)
|
||||
map(0x80010c, 0x80010f).ram().share("scrollram_1"); // Scrolling
|
||||
map(0x800114, 0x800117).ram().share("scrollram_0"); // Scrolling
|
||||
map(0x800154, 0x800155).ram().share("priorityram"); // Priority
|
||||
map(0x8001fe, 0x8001ff).nopw(); // ? 0 (during int)
|
||||
map(0x8001fe, 0x8001fe).w(FUNC(yunsun16_state::int_ack_w));
|
||||
map(0x900000, 0x903fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
|
||||
map(0x908000, 0x90bfff).ram().w(FUNC(yunsun16_state::vram_w<1>)).share("vram_1"); // Layer 1
|
||||
map(0x90c000, 0x90ffff).ram().w(FUNC(yunsun16_state::vram_w<0>)).share("vram_0"); // Layer 0
|
||||
@ -601,7 +606,6 @@ void magicbub_state::magicbub(machine_config &config)
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, XTAL(16'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &magicbub_state::main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(magicbub_state::irq2_line_hold));
|
||||
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", XTAL(16'000'000) / 4));
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &magicbub_state::sound_map);
|
||||
@ -612,6 +616,7 @@ void magicbub_state::magicbub(machine_config &config)
|
||||
m_screen->set_raw(XTAL(16'000'000)/2, 512, 0x20, 0x180-0x20, 260, 0, 0xe0); /* TODO: completely inaccurate */
|
||||
m_screen->set_screen_update(FUNC(magicbub_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_yunsun16);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 8192);
|
||||
@ -642,13 +647,13 @@ void shocking_state::shocking(machine_config &config)
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, XTAL(16'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shocking_state::main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(shocking_state::irq2_line_hold));
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(XTAL(16'000'000)/2, 512, 0, 0x180-4, 260, 0, 0xe0); /* TODO: completely inaccurate */
|
||||
m_screen->set_screen_update(FUNC(shocking_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
m_screen->screen_vblank().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_yunsun16);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 8192);
|
||||
|
@ -46,6 +46,8 @@ protected:
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
private:
|
||||
void int_ack_w(uint8_t data);
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr_array<uint16_t, 2> m_vram;
|
||||
required_shared_ptr_array<uint16_t, 2> m_scrollram;
|
||||
|
Loading…
Reference in New Issue
Block a user