diff options
author | 2015-08-08 11:58:30 +0200 | |
---|---|---|
committer | 2015-08-20 11:42:57 +0200 | |
commit | 4043b55acbc5e7ef63170c606c5afa75e4fedc7b (patch) | |
tree | 9417c782a3652c9228f45831c905375711cab741 /src/emu/cpu | |
parent | 70f493692638387862dff42dfa4dd0606ff49ab1 (diff) |
namco system 10 checkpoint, startrgn does a new flash access and
is unhappy with the result (nw)
Diffstat (limited to 'src/emu/cpu')
-rw-r--r-- | src/emu/cpu/psx/psx.c | 8 | ||||
-rw-r--r-- | src/emu/cpu/psx/psx.h | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/emu/cpu/psx/psx.c b/src/emu/cpu/psx/psx.c index a60a1204b9f..a262c9bd42c 100644 --- a/src/emu/cpu/psx/psx.c +++ b/src/emu/cpu/psx/psx.c @@ -1417,7 +1417,7 @@ void psxcpu_device::update_rom_config() } } - if( window_size < max_window_size ) + if( window_size < max_window_size && !m_disable_rom_berr) { m_program->install_readwrite_handler( 0x1fc00000 + window_size, 0x1fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); m_program->install_readwrite_handler( 0x9fc00000 + window_size, 0x9fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); @@ -1756,6 +1756,7 @@ psxcpu_device::psxcpu_device( const machine_config &mconfig, device_type type, c m_cd_write_handler( *this ), m_ram( *this, "ram" ) { + m_disable_rom_berr = false; } cxd8530aq_device::cxd8530aq_device( const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock ) @@ -3374,6 +3375,11 @@ WRITE8_MEMBER( psxcpu_device::cd_w ) m_cd_write_handler( space, offset, data, mem_mask ); } +void psxcpu_device::set_disable_rom_berr(bool mode) +{ + m_disable_rom_berr = mode; +} + static MACHINE_CONFIG_FRAGMENT( psx ) MCFG_DEVICE_ADD( "irq", PSX_IRQ, 0 ) MCFG_PSX_IRQ_HANDLER( INPUTLINE( DEVICE_SELF, PSXCPU_IRQ0 ) ) diff --git a/src/emu/cpu/psx/psx.h b/src/emu/cpu/psx/psx.h index 4f5895bf4e9..21b6d8adc55 100644 --- a/src/emu/cpu/psx/psx.h +++ b/src/emu/cpu/psx/psx.h @@ -128,6 +128,8 @@ enum devcb = &psxcpu_device::set_cd_read_handler(*device, DEVCB_##_devcb); #define MCFG_PSX_CD_WRITE_HANDLER(_devcb) \ devcb = &psxcpu_device::set_cd_write_handler(*device, DEVCB_##_devcb); +#define MCFG_PSX_DISABLE_ROM_BERR \ + downcast<psxcpu_device *>(device)->set_disable_rom_berr(true); //************************************************************************** // TYPE DEFINITIONS @@ -196,6 +198,7 @@ public: DECLARE_READ32_MEMBER( com_delay_r ); static psxcpu_device *getcpu( device_t &device, const char *cputag ); + void set_disable_rom_berr(bool mode); protected: psxcpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); @@ -346,6 +349,7 @@ protected: devcb_write8 m_cd_write_handler; required_device<ram_device> m_ram; memory_region *m_rom; + bool m_disable_rom_berr; private: // disassembler interface |