diff --git a/CMakeLists.txt b/CMakeLists.txt index dcd981669..1e3caa0b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -459,7 +459,7 @@ src/engine/platform/sound/ga20/iremga20.cpp src/engine/platform/sound/sm8521.c -src/engine/platform/sound/d65010g031.c +src/engine/platform/sound/d65modified.c src/engine/platform/oplAInterface.cpp src/engine/platform/ym2608Interface.cpp diff --git a/src/engine/platform/pv1000.cpp b/src/engine/platform/pv1000.cpp index 823ca871b..81bfacfb4 100644 --- a/src/engine/platform/pv1000.cpp +++ b/src/engine/platform/pv1000.cpp @@ -40,7 +40,7 @@ void DivPlatformPV1000::acquire(short** buf, size_t len) { for (size_t h=0; hdata[oscBuf[i]->needle++]=(d65010g031.square[i].out<<12); } diff --git a/src/engine/platform/pv1000.h b/src/engine/platform/pv1000.h index 953709abe..7c3541df5 100644 --- a/src/engine/platform/pv1000.h +++ b/src/engine/platform/pv1000.h @@ -21,7 +21,7 @@ #define _PV1000_H #include "../dispatch.h" -#include "sound/d65010g031.h" +#include "sound/d65modified.h" #include class DivPlatformPV1000: public DivDispatch { diff --git a/src/engine/platform/sound/d65010g031.c b/src/engine/platform/sound/d65modified.c similarity index 74% rename from src/engine/platform/sound/d65010g031.c rename to src/engine/platform/sound/d65modified.c index dbcd63784..8f53b34c8 100644 --- a/src/engine/platform/sound/d65010g031.c +++ b/src/engine/platform/sound/d65modified.c @@ -34,9 +34,31 @@ freely, subject to the following restrictions: TODO: - needs hardware test +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! +ALTERED VERSION!!! + + +THIS IS **NOT** NOT NOT NOT!!!! THE ORIGINAL SOFTWARE +IT ISN'T +THE MODIFICATIONS THAT WERE MADE ARE: + +1. FIX VOLUMES - APPARENTLY THE SQUARES HAVE DIFFERENT VOLUMES (thanks forple) + */ -#include "d65010g031.h" +#include "d65modified.h" #include static int d65010g031_max(int a, int b) { return (a > b) ? a : b; } @@ -57,12 +79,20 @@ int d65010g031_square_tick(struct d65010g031_square_t *square, const int cycle) return 0; } +// this is the bit I altered +// THIS IS **NOT** THE ORIGINAL SOFTWARE! I am plainly marking it as such! +const int d65Volumes[3]={ + 3840, + 5120, + 8192 +}; + int d65010g031_sound_tick(struct d65010g031_t *d65010g031, const int cycle) { int out = 0; for (int i = 0; i < 3; i++) { - out += d65010g031_square_tick(&d65010g031->square[i], cycle); + out += d65010g031_square_tick(&d65010g031->square[i], cycle)?d65Volumes[i]:-d65Volumes[i]; } return out; } diff --git a/src/engine/platform/sound/d65010g031.h b/src/engine/platform/sound/d65modified.h similarity index 100% rename from src/engine/platform/sound/d65010g031.h rename to src/engine/platform/sound/d65modified.h