From d7e82333e8147e7920724db0f030480a975d9e9f Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Wed, 5 Jul 2017 21:43:26 +0200 Subject: Fix, maybe (nw) --- src/devices/cpu/m6502/n2a03.cpp | 65 ++--------------------------------------- src/devices/cpu/m6502/n2a03.h | 21 ------------- 2 files changed, 3 insertions(+), 83 deletions(-) diff --git a/src/devices/cpu/m6502/n2a03.cpp b/src/devices/cpu/m6502/n2a03.cpp index 7548089cc15..ca3a8a9b87b 100644 --- a/src/devices/cpu/m6502/n2a03.cpp +++ b/src/devices/cpu/m6502/n2a03.cpp @@ -51,9 +51,9 @@ ADDRESS_MAP_END n2a03_device::n2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : m6502_device(mconfig, N2A03, tag, owner, clock), - m_apu(*this, "nesapu"), - m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME(n2a03_map)) + m_apu(*this, "nesapu") { + program_config.m_internal_map = ADDRESS_MAP_NAME(n2a03_map); } offs_t n2a03_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) @@ -66,52 +66,7 @@ void n2a03_device::device_start() if(!m_apu->started()) throw device_missing_dependencies(); - if(direct_disabled) - mintf = new mi_2a03_nd; - else - mintf = new mi_2a03_normal; - - init(); -} - -uint8_t n2a03_device::mi_2a03_normal::read(uint16_t adr) -{ - return program->read_byte(adr); -} - -uint8_t n2a03_device::mi_2a03_normal::read_sync(uint16_t adr) -{ - return sdirect->read_byte(adr); -} - -uint8_t n2a03_device::mi_2a03_normal::read_arg(uint16_t adr) -{ - return direct->read_byte(adr); -} - -void n2a03_device::mi_2a03_normal::write(uint16_t adr, uint8_t val) -{ - program->write_byte(adr, val); -} - -uint8_t n2a03_device::mi_2a03_nd::read(uint16_t adr) -{ - return program->read_byte(adr); -} - -uint8_t n2a03_device::mi_2a03_nd::read_sync(uint16_t adr) -{ - return sprogram->read_byte(adr); -} - -uint8_t n2a03_device::mi_2a03_nd::read_arg(uint16_t adr) -{ - return program->read_byte(adr); -} - -void n2a03_device::mi_2a03_nd::write(uint16_t adr, uint8_t val) -{ - program->write_byte(adr, val); + m6502_device::device_start(); } void n2a03_device::device_clock_changed() @@ -119,20 +74,6 @@ void n2a03_device::device_clock_changed() m_apu->set_unscaled_clock(clock()); } -std::vector> n2a03_device::memory_space_config() const -{ - if(has_configured_map(AS_OPCODES)) - return std::vector> { - std::make_pair(AS_PROGRAM, &program_config), - std::make_pair(AS_OPCODES, &sprogram_config) - }; - else - return std::vector> { - std::make_pair(AS_PROGRAM, &program_config) - }; -} - - WRITE_LINE_MEMBER(n2a03_device::apu_irq) { // games relying on the APU_IRQ don't seem to work anyway? (nes software list : timelord, mig29sf, firehawk) diff --git a/src/devices/cpu/m6502/n2a03.h b/src/devices/cpu/m6502/n2a03.h index da378fc3dbd..0a4cf346797 100644 --- a/src/devices/cpu/m6502/n2a03.h +++ b/src/devices/cpu/m6502/n2a03.h @@ -34,24 +34,6 @@ public: required_device m_apu; // public for vgmplay protected: - class mi_2a03_normal : public memory_interface { - public: - virtual ~mi_2a03_normal() {} - virtual uint8_t read(uint16_t adr) override; - virtual uint8_t read_sync(uint16_t adr) override; - virtual uint8_t read_arg(uint16_t adr) override; - virtual void write(uint16_t adr, uint8_t val) override; - }; - - class mi_2a03_nd : public memory_interface { - public: - virtual ~mi_2a03_nd() {} - virtual uint8_t read(uint16_t adr) override; - virtual uint8_t read_sync(uint16_t adr) override; - virtual uint8_t read_arg(uint16_t adr) override; - virtual void write(uint16_t adr, uint8_t val) override; - }; - virtual void device_start() override; #define O(o) void o ## _full(); void o ## _partial() @@ -66,11 +48,8 @@ protected: #undef O virtual void device_add_mconfig(machine_config &config) override; - virtual std::vector> memory_space_config() const override; private: - address_space_config m_program_config; - DECLARE_WRITE_LINE_MEMBER(apu_irq); DECLARE_READ8_MEMBER(apu_read_mem); -- cgit v1.2.3