ref: 80e502b58273bec2fb470f55563ccc4867dcae1f
parent: db3fb6c37b988cc8a4e40150216d229937897d6f
parent: 0af9bcc89b64bd2a8dc46e1bce0a1c0a665068c4
author: Clownacy <[email protected]>
date: Tue Dec 3 14:29:04 EST 2019
Merge branch 'accurate' into portable
--- a/src/PixTone.cpp
+++ b/src/PixTone.cpp
@@ -17,8 +17,8 @@
// Sine wave
for (i = 0; i < 0x100; ++i)
{
- gWaveModelTable[0][i] = (signed char)(sin(i * 6.283184 / 256.0) * 64.0);
- a = gWaveModelTable[0][i];
+ gWaveModelTable[0][i] = (signed char)(sin((i * 6.283184) / 256.0) * 64.0);
+ a = gWaveModelTable[0][i]; // I have no idea what this line was meant to do
}
// Triangle wave
@@ -31,23 +31,23 @@
for (a = 0; i < 0xC0; ++i)
{
// Downwards
- gWaveModelTable[1][i] = 0x40 - (a * 0x40) / 0x40;
+ gWaveModelTable[1][i] = 0x40 - ((a * 0x40) / 0x40);
++a;
}
for (a = 0; i < 0x100; ++i)
{
// Back up
- gWaveModelTable[1][i] = (a * 0x40) / 0x40 - 0x40;
+ gWaveModelTable[1][i] = ((a * 0x40) / 0x40) - 0x40;
++a;
}
// Saw up wave
for (i = 0; i < 0x100; ++i)
- gWaveModelTable[2][i] = i / 2 - 0x40;
+ gWaveModelTable[2][i] = (i / 2) - 0x40;
// Saw down wave
for (i = 0; i < 0x100; ++i)
- gWaveModelTable[3][i] = 0x40 - i / 2;
+ gWaveModelTable[3][i] = 0x40 - (i / 2);
// Square wave
for (i = 0; i < 0x80; ++i)
@@ -88,7 +88,7 @@
while (i < ptp->pointAx)
{
envelopeTable[i] = (signed char)dEnvelope;
- dEnvelope = ((double)ptp->pointAy - ptp->initial) / ptp->pointAx + dEnvelope;
+ dEnvelope = (((double)ptp->pointAy - ptp->initial) / ptp->pointAx) + dEnvelope;
++i;
}
@@ -96,7 +96,7 @@
while (i < ptp->pointBx)
{
envelopeTable[i] = (signed char)dEnvelope;
- dEnvelope = ((double)ptp->pointBy - ptp->pointAy) / (double)(ptp->pointBx - ptp->pointAx) + dEnvelope;
+ dEnvelope = (((double)ptp->pointBy - ptp->pointAy) / (double)(ptp->pointBx - ptp->pointAx)) + dEnvelope;
++i;
}
@@ -112,7 +112,7 @@
while (i < 0x100)
{
envelopeTable[i] = (signed char)dEnvelope;
- dEnvelope = (double)dEnvelope - ptp->pointCy / (double)(256 - ptp->pointCx);
+ dEnvelope = dEnvelope - (ptp->pointCy / (double)(0x100 - ptp->pointCx));
++i;
}
@@ -144,7 +144,7 @@
pData[i] = gWaveModelTable[ptp->oMain.model][a]
* ptp->oMain.top
/ 64
- * (gWaveModelTable[ptp->oVolume.model][c] * ptp->oVolume.top / 64 + 64)
+ * (((gWaveModelTable[ptp->oVolume.model][c] * ptp->oVolume.top) / 64) + 64)
/ 64
* envelopeTable[d]
/ 64