fix Jit64::fmrx (well, fixes soul calibur 2 SPS at least) cottonvibes wrote this :)
fmrx can do some different behavior depending on the current mode of the fpr, but we *seem* to not have a problem ignoring this behavior... add a tiny comment to the PECopy register - some sources call the half_scale bit "mipmap" git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4476 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
7602f7ab3e
commit
31e61da40d
|
@ -194,16 +194,19 @@ void Jit64::fsign(UGeckoInstruction inst)
|
|||
|
||||
void Jit64::fmrx(UGeckoInstruction inst)
|
||||
{
|
||||
INSTRUCTION_START
|
||||
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITFloatingPointOff)
|
||||
{Default(inst); return;} // turn off from debugger
|
||||
INSTRUCTION_START;
|
||||
if (inst.Rc) {
|
||||
Default(inst); return;
|
||||
}
|
||||
int d = inst.FD;
|
||||
int b = inst.FB;
|
||||
fpr.LoadToX64(d, true); // we don't want to destroy the high bit
|
||||
MOVSD(fpr.RX(d), fpr.R(b));
|
||||
fpr.Lock(b, d);
|
||||
fpr.LoadToX64(d, true, true);
|
||||
MOVSD(XMM0, fpr.R(b));
|
||||
MOVSD(fpr.R(d), XMM0);
|
||||
fpr.UnlockAll();
|
||||
}
|
||||
|
||||
void Jit64::fcmpx(UGeckoInstruction inst)
|
||||
|
|
|
@ -813,7 +813,7 @@ union UPE_Copy
|
|||
unsigned : 1;
|
||||
unsigned target_pixel_format : 4; // realformat is (fmt/2)+((fmt&1)*8).... for some reason the msb is the lsb
|
||||
unsigned gamma : 2;
|
||||
unsigned half_scale : 1; // real size should be 2x smaller (run a gauss filter?)
|
||||
unsigned half_scale : 1; // real size should be 2x smaller (run a gauss filter?) "mipmap"
|
||||
unsigned scale_invert : 1;
|
||||
unsigned clear : 1;
|
||||
unsigned frame_to_field : 2;
|
||||
|
|
Loading…
Reference in New Issue