summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/315_5195.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/315_5195.h')
-rw-r--r--src/mame/machine/315_5195.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mame/machine/315_5195.h b/src/mame/machine/315_5195.h
index 0386cbccb8b..f12d8bc14a7 100644
--- a/src/mame/machine/315_5195.h
+++ b/src/mame/machine/315_5195.h
@@ -51,6 +51,9 @@ public:
u8 pread();
void pwrite(u8 data);
+ // to use when the underlying decryption changes and remapping is needed
+ void decryption_changed();
+
// mapping helpers
void map_as_rom(u32 offset, u32 length, offs_t mirror, const char *bank_name, const char *decrypted_bank_name, offs_t rgnoffset, write16_delegate whandler);
void map_as_ram(u32 offset, u32 length, offs_t mirror, const char *bank_share_name, write16_delegate whandler);
@@ -92,11 +95,11 @@ private:
// configuration
void set_decrypt(fd1089_base_device *fd1089);
void set_decrypt(fd1094_device *fd1094);
- void clear() { set(0, 0, ~0, nullptr); }
- void *set(offs_t start, offs_t end, offs_t rgnoffs, void *src);
+ void clear() { m_start = 0; m_end = ~0; m_rgnoffs = 0; m_srcptr = nullptr; }
+ void set(offs_t start, offs_t end, offs_t rgnoffs, void *src, memory_bank *bank);
// updating
- void *update();
+ void update(memory_bank *bank);
void reset() { m_fd1089_decrypted.clear(); if (m_fd1094_cache != nullptr) m_fd1094_cache->reset(); }
private:
@@ -123,11 +126,12 @@ private:
devcb_write_line m_mcu_int_callback;
// internal state
- address_space * m_space;
- address_space * m_decrypted_space;
- u8 m_regs[0x20];
- u8 m_curregion;
- decrypt_bank m_banks[8];
+ address_space * m_space;
+ address_space * m_decrypted_space;
+ memory_bank_array_creator<8> m_decryption_banks;
+ u8 m_regs[0x20];
+ u8 m_curregion;
+ decrypt_bank m_banks[8];
// communication registers
u8 m_to_sound;