mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
[AICA, SCSP] Fixed encoding/decoding of negative denormal floats in the DSP. Shouldn't actually affect any games. (kingshriek, Deunan Knute)
This commit is contained in:
parent
ad1d29db6e
commit
40f3c081f4
@ -24,6 +24,7 @@ static UINT16 PACK(INT32 val)
|
|||||||
else
|
else
|
||||||
val <<= 11;
|
val <<= 11;
|
||||||
val >>= 11;
|
val >>= 11;
|
||||||
|
val &= 0x7FF;
|
||||||
val |= sign << 15;
|
val |= sign << 15;
|
||||||
val |= exponent << 11;
|
val |= exponent << 11;
|
||||||
|
|
||||||
@ -40,7 +41,10 @@ static INT32 UNPACK(UINT16 val)
|
|||||||
mantissa = val & 0x7FF;
|
mantissa = val & 0x7FF;
|
||||||
uval = mantissa << 11;
|
uval = mantissa << 11;
|
||||||
if (exponent > 11)
|
if (exponent > 11)
|
||||||
|
{
|
||||||
exponent = 11;
|
exponent = 11;
|
||||||
|
uval |= sign << 22;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
uval |= (sign ^ 1) << 22;
|
uval |= (sign ^ 1) << 22;
|
||||||
uval |= sign << 23;
|
uval |= sign << 23;
|
||||||
|
@ -24,6 +24,7 @@ static UINT16 PACK(INT32 val)
|
|||||||
else
|
else
|
||||||
val <<= 11;
|
val <<= 11;
|
||||||
val >>= 11;
|
val >>= 11;
|
||||||
|
val &= 0x7FF;
|
||||||
val |= sign << 15;
|
val |= sign << 15;
|
||||||
val |= exponent << 11;
|
val |= exponent << 11;
|
||||||
|
|
||||||
@ -40,7 +41,10 @@ static INT32 UNPACK(UINT16 val)
|
|||||||
mantissa = val & 0x7FF;
|
mantissa = val & 0x7FF;
|
||||||
uval = mantissa << 11;
|
uval = mantissa << 11;
|
||||||
if (exponent > 11)
|
if (exponent > 11)
|
||||||
|
{
|
||||||
exponent = 11;
|
exponent = 11;
|
||||||
|
uval |= sign << 22;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
uval |= (sign ^ 1) << 22;
|
uval |= (sign ^ 1) << 22;
|
||||||
uval |= sign << 23;
|
uval |= sign << 23;
|
||||||
|
Loading…
Reference in New Issue
Block a user