summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu')
-rw-r--r--src/emu/cpu/psx/psx.c8
-rw-r--r--src/emu/cpu/psx/psx.h4
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