summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2020-11-27 22:43:09 +0100
committer Olivier Galibert <galibert@pobox.com>2020-11-27 22:43:37 +0100
commitecb3bd1d01d1e304d7d4cd95215d31197d0f4a6f (patch)
tree0e64683d5ad8ba89ab87f6260edc3fa80ecc8342
parent9f741826dce4aee8d4f6d0a8d56a3d222e0d6218 (diff)
Fix in213, kinda. The screen can be anywhere in ram, which is probably incorrect
-rw-r--r--src/mame/drivers/informer_213.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/mame/drivers/informer_213.cpp b/src/mame/drivers/informer_213.cpp
index f6d9268bbd8..3803f7ae877 100644
--- a/src/mame/drivers/informer_213.cpp
+++ b/src/mame/drivers/informer_213.cpp
@@ -97,6 +97,8 @@ private:
uint16_t m_cursor_addr;
uint8_t m_screen_ctrl;
uint8_t m_firq_vector;
+
+ memory_access<16, 0, 0, ENDIANNESS_BIG>::specific m_program;
};
@@ -162,8 +164,10 @@ uint32_t informer_213_state::screen_update(screen_device &screen, bitmap_rgb32 &
else
addr = m_vram_start_addr2 + y * 80 + x;
- uint8_t code = m_vram[addr - 0x6000];
- uint8_t attr = m_aram[addr - 0x6000];
+ uint8_t code = m_program.read_byte(addr);
+ uint8_t attr = m_program.read_byte(addr+0x1000);
+
+ logerror("%02d.%02d %04x %02x %02x\n", x, y, addr, code, attr);
if (code == 0xc0 || code == 0xe8)
line_attr = attr;
@@ -359,6 +363,8 @@ void informer_213_state::machine_start()
m_nvram[1]->set_base(m_banked_ram.get(), 0x800);
+ m_maincpu->space(AS_PROGRAM).specific(m_program);
+
// register for save states
save_item(NAME(m_vram_start_addr));
save_item(NAME(m_vram_start_addr2));
@@ -366,11 +372,20 @@ void informer_213_state::machine_start()
save_item(NAME(m_cursor_addr));
save_item(NAME(m_screen_ctrl));
save_item(NAME(m_firq_vector));
+ save_item(NAME(m_cursor_start));
+ save_item(NAME(m_cursor_end));
}
void informer_213_state::machine_reset()
{
m_firq_vector = 0x00;
+ m_vram_start_addr = 0x0084;
+ m_vram_start_addr2 = 0x0084;
+ m_vram_end_addr = 0xffff;
+ m_cursor_start = 0x20;
+ m_cursor_end = 0x09;
+ m_cursor_addr = 0xffff;
+ m_screen_ctrl = 0x18;
}