diff --git a/src/devices/cpu/tms57002/tms57002.cpp b/src/devices/cpu/tms57002/tms57002.cpp index da29f23fbcd..51c18781ef5 100644 --- a/src/devices/cpu/tms57002/tms57002.cpp +++ b/src/devices/cpu/tms57002/tms57002.cpp @@ -83,6 +83,9 @@ void tms57002_device::device_reset() id = 0; ba0 = 0; ba1 = 0; + sa = 0; + rptc = 0; + rptc_next = 0; update_counter_tail = 0; update_counter_head = 0; st0 &= ~(ST0_INCS | ST0_DIRI | ST0_FI | ST0_SIM | ST0_PLRI | diff --git a/src/devices/sound/gaelco.cpp b/src/devices/sound/gaelco.cpp index 7da4ab16f76..31d294ee948 100644 --- a/src/devices/sound/gaelco.cpp +++ b/src/devices/sound/gaelco.cpp @@ -265,6 +265,11 @@ void gaelco_gae1_device::device_start() wavraw = util::wav_open("gae1_snd.wav", rate, 2); } +void gaelco_gae1_device::device_reset() +{ + for (int ch = 0; ch < NUM_CHANNELS; ch++) + m_channel[ch].active = 0; +} void gaelco_gae1_device::device_stop() { diff --git a/src/devices/sound/gaelco.h b/src/devices/sound/gaelco.h index a598c64345d..76a77c0bb40 100644 --- a/src/devices/sound/gaelco.h +++ b/src/devices/sound/gaelco.h @@ -38,6 +38,7 @@ protected: // device-level overrides virtual void device_start() override; + virtual void device_reset() override; virtual void device_stop() override; virtual void device_post_load() override; virtual void device_clock_changed() override; diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp index b76d73a0ffa..bf432147a74 100644 --- a/src/mame/drivers/konamigx.cpp +++ b/src/mame/drivers/konamigx.cpp @@ -1028,9 +1028,7 @@ void konamigx_state::gx_base_memmap(address_map &map) map(0x400000, 0x7fffff).rom(); // data ROM map(0xc00000, 0xc1ffff).ram().share("workram"); map(0xd00000, 0xd01fff).r(m_k056832, FUNC(k056832_device::k_5bpp_rom_long_r)); - map(0xd20000, 0xd20fff).rw(m_k055673, FUNC(k055673_device::k053247_word_r), FUNC(k055673_device::k053247_word_w)); - map(0xd21000, 0xd21fff).ram(); // second bank of sprite RAM, accessed thru ESC - map(0xd22000, 0xd23fff).ram(); // extra bank checked at least by sexyparo, pending further investigation. + map(0xd20000, 0xd23fff).rw(m_k055673, FUNC(k055673_device::k053247_word_r), FUNC(k055673_device::k053247_word_w)); map(0xd40000, 0xd4003f).w(m_k056832, FUNC(k056832_device::word_w)); map(0xd44000, 0xd4400f).w(FUNC(konamigx_state::konamigx_tilebank_w)); map(0xd48000, 0xd48007).w(m_k055673, FUNC(k055673_device::k053246_w)); @@ -1085,7 +1083,6 @@ void konamigx_state::gx_type2_map(address_map &map) void konamigx_state::gx_type3_map(address_map &map) { gx_base_memmap(map); - map(0xd20000, 0xd21fff).rw(m_k055673, FUNC(k055673_device::k053247_word_r), FUNC(k055673_device::k053247_word_w)); map(0xd90000, 0xd97fff).ram(); //map(0xcc0000, 0xcc0007).w(FUNC(konamigx_state::type4_prot_w)); map(0xe00000, 0xe0001f).ram().share("k053936_0_ctrl"); @@ -1102,7 +1099,6 @@ void konamigx_state::gx_type4_map(address_map &map) { gx_base_memmap(map); map(0xcc0000, 0xcc0007).w(FUNC(konamigx_state::type4_prot_w)); - map(0xd20000, 0xd21fff).rw(m_k055673, FUNC(k055673_device::k053247_word_r), FUNC(k055673_device::k053247_word_w)); map(0xd90000, 0xd97fff).ram(); map(0xe00000, 0xe0001f).ram().share("k053936_0_ctrl"); map(0xe20000, 0xe20003).nopw(); diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp index 389c6de42a2..f54f0cd8e5b 100644 --- a/src/mame/video/k053246_k053247_k055673.cpp +++ b/src/mame/video/k053246_k053247_k055673.cpp @@ -1026,13 +1026,13 @@ void k055673_device::device_start() m_z_rejection = -1; m_gfx = gfx(gfx_index); m_objcha_line = CLEAR_LINE; - m_ram = std::make_unique(0x1000/2); + m_ram = std::make_unique(0x4000/2); - memset(m_ram.get(), 0, 0x1000); + memset(m_ram.get(), 0, 0x4000); std::fill(std::begin(m_kx46_regs), std::end(m_kx46_regs), 0); std::fill(std::begin(m_kx47_regs), std::end(m_kx47_regs), 0); - save_pointer(NAME(m_ram), 0x800); + save_pointer(NAME(m_ram), 0x2000); save_item(NAME(m_kx46_regs)); save_item(NAME(m_kx47_regs)); save_item(NAME(m_objcha_line)); diff --git a/src/mame/video/lsasquad.cpp b/src/mame/video/lsasquad.cpp index d4e9a2b551e..5b3db462ba7 100644 --- a/src/mame/video/lsasquad.cpp +++ b/src/mame/video/lsasquad.cpp @@ -30,8 +30,8 @@ void lsasquad_state::draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect sy = 248 - sy; sy &= 0xff; - attr = m_videoram[base + 2 * y + 1]; - code = m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); + attr = m_videoram[(base + 2 * y + 1) & 0x1fff]; + code = m_videoram[(base + 2 * y) & 0x1fff] + ((attr & 0x0f) << 8); color = attr >> 4; m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, @@ -115,8 +115,8 @@ int lsasquad_state::draw_layer_daikaiju( bitmap_ind16 &bitmap, const rectangle & sy = 248 - sy; sy &= 0xff; - attr = m_videoram[base + 2 * y + 1]; - code = m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); + attr = m_videoram[(base + 2 * y + 1) & 0x1fff]; + code = m_videoram[(base + 2 * y) & 0x1fff] + ((attr & 0x0f) << 8); color = attr >> 4; if ((type == 0 && color != 0x0d) || (type != 0 && color == 0x0d))