diff options
author | Ryan Holtz <rholtz@batcountryentertainment.com> | 2012-01-04 16:58:26 +0000 |
---|---|---|
committer | Ryan Holtz <rholtz@batcountryentertainment.com> | 2012-01-04 16:58:26 +0000 |
commit | 5cb1e8fae961ce8255f6e331d5ab2474d0182a0d (patch) | |
tree | f8e7d91bafdc2074e8cef848dce1515d66a56753 | |
parent | 505dbc504b0ea959f1732037e985406a4e39dc56 (diff) |
ARM7: Fixed 39-in-1 booting. [Tim Schuerewegen]
-rw-r--r-- | src/emu/cpu/arm7/arm7.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c index d3c547ed3da..09e42561faf 100644 --- a/src/emu/cpu/arm7/arm7.c +++ b/src/emu/cpu/arm7/arm7.c @@ -1197,12 +1197,28 @@ static WRITE32_DEVICE_HANDLER( arm7_rt_w_callback ) void arm7_dt_r_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, UINT32 (*read32)(arm_state *cpustate, UINT32 addr)) { - cpustate->pendingUnd = 1; + UINT8 cpn = (insn >> 8) & 0xF; + if ((cpustate->archFlags & eARM_ARCHFLAGS_XSCALE) && (cpn == 0)) + { + LOG( ( "arm7_dt_r_callback: DSP Coprocessor 0 (CP0) not yet emulated (PC %08x)\n", GET_PC ) ); + } + else + { + cpustate->pendingUnd = 1; + } } void arm7_dt_w_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, void (*write32)(arm_state *cpustate, UINT32 addr, UINT32 data)) { - cpustate->pendingUnd = 1; + UINT8 cpn = (insn >> 8) & 0xF; + if ((cpustate->archFlags & eARM_ARCHFLAGS_XSCALE) && (cpn == 0)) + { + LOG( ( "arm7_dt_w_callback: DSP Coprocessor 0 (CP0) not yet emulated (PC %08x)\n", GET_PC ) ); + } + else + { + cpustate->pendingUnd = 1; + } } DEFINE_LEGACY_CPU_DEVICE(ARM7, arm7); |