diff options
Diffstat (limited to 'src/devices/bus/msx_cart/superloderunner.cpp')
-rw-r--r-- | src/devices/bus/msx_cart/superloderunner.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/devices/bus/msx_cart/superloderunner.cpp b/src/devices/bus/msx_cart/superloderunner.cpp index 51289c24f10..b846a935953 100644 --- a/src/devices/bus/msx_cart/superloderunner.cpp +++ b/src/devices/bus/msx_cart/superloderunner.cpp @@ -19,11 +19,14 @@ void msx_cart_superloderunner_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_superloderunner_device::restore_banks), this)); - // Install evil memory write handler - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_PROGRAM); - space.install_write_handler(0x0000, 0x0000, write8_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); + memory_space().install_write_handler(0x0000, 0x0000, write8smo_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); +} + + +void msx_cart_superloderunner_device::device_post_load() +{ + restore_banks(); } @@ -44,7 +47,7 @@ void msx_cart_superloderunner_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_superloderunner_device::read_cart) +uint8_t msx_cart_superloderunner_device::read_cart(offs_t offset) { if (offset >= 0x8000 && offset < 0xc000) { @@ -55,7 +58,7 @@ READ8_MEMBER(msx_cart_superloderunner_device::read_cart) } -WRITE8_MEMBER(msx_cart_superloderunner_device::banking) +void msx_cart_superloderunner_device::banking(uint8_t data) { m_selected_bank = data; restore_banks(); |