mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-30 13:58:03 +03:00
DSPLLE: fixed 0x20 handling, we still don't know what it is good for
though:( git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3980 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
153ec6836e
commit
c4dda436c6
3 changed files with 12 additions and 8 deletions
|
@ -28,6 +28,7 @@ namespace DSPInterpreter {
|
|||
|
||||
void Update_SR_Register64(s64 _Value)
|
||||
{
|
||||
// TODO: Should also set 0x10 and 0x01
|
||||
g_dsp.r[DSP_REG_SR] &= ~SR_CMP_MASK;
|
||||
|
||||
if (_Value < 0)
|
||||
|
@ -40,17 +41,20 @@ void Update_SR_Register64(s64 _Value)
|
|||
g_dsp.r[DSP_REG_SR] |= SR_ARITH_ZERO;
|
||||
}
|
||||
|
||||
// weird
|
||||
if ((_Value >> 62) == 0)
|
||||
// Checks if top bits are equal, what is it good for?
|
||||
if ((_Value >> 62) == 0 || _Value >> 62 == 3)
|
||||
{
|
||||
g_dsp.r[DSP_REG_SR] |= 0x20;
|
||||
g_dsp.r[DSP_REG_SR] |= SR_TOP2BITS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Update_SR_Register16(s16 _Value)
|
||||
{
|
||||
g_dsp.r[DSP_REG_SR] &= ~SR_CMP_MASK;
|
||||
|
||||
// Only sets those 3 bits
|
||||
|
||||
if (_Value < 0)
|
||||
{
|
||||
g_dsp.r[DSP_REG_SR] |= SR_SIGN;
|
||||
|
@ -61,10 +65,10 @@ void Update_SR_Register16(s16 _Value)
|
|||
g_dsp.r[DSP_REG_SR] |= SR_ARITH_ZERO;
|
||||
}
|
||||
|
||||
// weird
|
||||
if ((_Value >> 14) == 0)
|
||||
// Checks if top bits are equal, what is it good for?
|
||||
if ((_Value >> 14) == 0 || _Value >> 14 == 3)
|
||||
{
|
||||
g_dsp.r[DSP_REG_SR] |= 0x20;
|
||||
g_dsp.r[DSP_REG_SR] |= SR_TOP2BITS;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue