diff options
author | Olivier Galibert <galibert@pobox.com> | 2020-11-27 12:19:39 +0100 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2020-11-27 12:19:39 +0100 |
commit | 805af5e163d3ed3953be942ab8912792155a9f6d (patch) | |
tree | 00cf474fdd53cda6626606e16b147dd3dcd0ded7 | |
parent | 08effe4cc19200dcbe79a835550ad612229c90f7 (diff) |
Fix tugboat, required full-on memory access
-rw-r--r-- | src/mame/drivers/tugboat.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mame/drivers/tugboat.cpp b/src/mame/drivers/tugboat.cpp index 2ecdc48590f..da6d7b381cb 100644 --- a/src/mame/drivers/tugboat.cpp +++ b/src/mame/drivers/tugboat.cpp @@ -42,8 +42,7 @@ public: m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_ram(*this, "ram") + m_palette(*this, "palette") { } void tugboat(machine_config &config); @@ -66,7 +65,7 @@ private: required_device<screen_device> m_screen; required_device<palette_device> m_palette; - required_shared_ptr<uint8_t> m_ram; + memory_access<16, 0, 0, ENDIANNESS_LITTLE>::specific m_program; uint8_t m_hd46505_0_reg[18]; uint8_t m_hd46505_1_reg[18]; @@ -93,6 +92,7 @@ private: void tugboat_state::machine_start() { m_interrupt_timer = timer_alloc(TIMER_INTERRUPT); + m_maincpu->space(AS_PROGRAM).specific(m_program); save_item(NAME(m_hd46505_0_reg)); save_item(NAME(m_hd46505_1_reg)); @@ -141,8 +141,8 @@ void tugboat_state::hd46505_1_w(offs_t offset, uint8_t data) void tugboat_state::score_w(offs_t offset, uint8_t data) { - if (offset>=0x8) m_ram[0x291d + 32*offset + 32*(1-8)] = data ^ 0x0f; - if (offset<0x8 ) m_ram[0x291d + 32*offset + 32*9] = data ^ 0x0f; + if (offset>=0x8) m_program.write_byte(0x291d + 32*offset + 32*(1-8), data ^ 0x0f); + if (offset<0x8 ) m_program.write_byte(0x291d + 32*offset + 32*9, data ^ 0x0f); } void tugboat_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, @@ -152,8 +152,8 @@ void tugboat_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect { for (int x = 0; x < 32; x++) { - int attr = m_ram[addr + 0x400]; - int code = ((attr & 0x01) << 8) | m_ram[addr]; + int attr = m_program.read_byte(addr + 0x400); + int code = ((attr & 0x01) << 8) | m_program.read_byte(addr); int color = (attr & 0x3c) >> 2; int rgn, transpen; @@ -234,7 +234,7 @@ void tugboat_state::machine_reset() void tugboat_state::main_map(address_map &map) { map.global_mask(0x7fff); - map(0x0000, 0x01ff).ram().share("ram"); + map(0x0000, 0x01ff).ram(); map(0x1060, 0x1061).w("aysnd", FUNC(ay8910_device::address_data_w)); map(0x10a0, 0x10a1).w(FUNC(tugboat_state::hd46505_0_w)); /* scrolling is performed changing the start_addr register (0C/0D) */ map(0x10c0, 0x10c1).w(FUNC(tugboat_state::hd46505_1_w)); |