Open simias opened 9 years ago
I've also noticed a strange behaviour of cfc2/mfc2 in my test code on the console: sometimes it appears to return bogus values (for instance zero when the register is non-zero). I also noticed that the BIOS code often (always?) uses two identical mfc2 calls in a row to load a value. I'm guessing that a single read is not trustworthy?
The issue appears pseudo-random in my tests, maybe a subtle timing issue.
There appears to be a 2 cycle latency when storing a value to a GTE register with the
ctc2
instruction. For instance the following code puts0x456
(the value of$t1
) in$a1
even though there are two otherctc2
instructions in between:I have to see if this also concerns the GTE command: what happens if you run an instruction immediately after setting a register?