Project64: Unhandled R4300i opcode in 64DD emulation

Created on 3 Jul 2016  路  12Comments  路  Source: project64/project64

When enable Debugger, some error after N64 logo in 64DD emulation.
Error will be displayed in any disk image.

///////////////////////////
CX86RecompilerOps::LW_KnownAddress
Failed to translate address: A4600004
e1

///////////////////////////
CX86RecompilerOps::SW_Const
trying to store AAAAAAAA in A5000520?

///////////////////////////
Unhandled R4300i opcode at: 80278BA0
mtc0 a0, Cause

Stopping Emulation !
e2
e3

///////////////////////////
Break point found at
N64System\Interpreter\InterpreterOps.cpp
2813
///////////////////////////
Break point found at
MemoryExceptionFilter.cpp
40
///////////////////////////

All 12 comments

Add 0x04600000-0x0460000C to LW.
https://github.com/project64/project64/pull/1153
Please check this implementation..:p

Add some of the 64DD Registers to SW_Const https://github.com/project64/project64/pull/1156

@Nekokabu So with those two fixes is the problem resolved, or does it need more to fix the issue?

"Unhandled R4300i opcode at: 80278BA0" are not fix yet.

@Nekokabu Is the issue in both the recompiler and the interpreter?

If it happens in both you could probably nag @LuigiBlood to see if he cares to look into it. I don't run DD.

@cxd4 I checked the datasheet and can't find what it is pointing to, unless mtc0 is actually just a COP0 instruction? I thought that's how mfc0 was handled as well. shrugs

The issue is 64DD related, but it's not a 64DD issue. It's a CPU emulation issue. I don't fully understand MIPS yet so...

unless mtc0 is actually just a COP0 instruction?

Really? Is it possible that mtc0 is just a COP0 instruction?

Gee, I really thought it could have instead been...hm...er, wait, what did you suppose it was?

@LuigiBlood That's kind of what I was getting at.

@cxd4 Yeah, basically those instructions are handled the same, at least from what I recall about them. They aren't identical obviously, but from what I remember MTC0 and MFC0 utilize the COP0 in some way or something. I don't know, maybe I'm wrong. They move things to/from the coprocessor, I think.

Let me know. If you find out what those two instructions do you could make $1000000 emu.

I reviewed this problem again.
It was fixed in the latest version.
(It was fixed by someone with a commit after #1156.)
Thank you, everyone:)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Rikimaruaxu picture Rikimaruaxu  路  5Comments

crazyboy92 picture crazyboy92  路  4Comments

naw9457 picture naw9457  路  14Comments

Lithium64 picture Lithium64  路  9Comments

oddMLan picture oddMLan  路  8Comments