ref: 113c3fc124268633663c454f465459ad1c8172a3
parent: c284afdaddde42695af3df1507f024758cf29ebf
author: cuckydev <cuckydev@users.noreply.github.com>
date: Thu Jan 31 08:01:09 EST 2019
Made SFX loading more similar to the original
--- a/src/GenericLoad.cpp
+++ b/src/GenericLoad.cpp
@@ -1,5 +1,7 @@
#include "CommonDefines.h"
#include "Draw.h"
+#include "Sound.h"
+#include "PixTone.h"
bool LoadGenericData()
{
@@ -51,6 +53,34 @@
MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_1);
MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_2);
MakeSurface_Generic(WINDOW_WIDTH, 240, SURFACE_ID_CREDIT_CAST);
+
+ char path[0x100];
+ uint8_t *buf = nullptr;
+ size_t len;
+
+ for (unsigned int n = 0; n < SOUND_NO; n++)
+ {
+ sprintf(path, "%2.2X.pxt", n);
+
+ if (LoadPxt(path, &buf, &len))
+ {
+ lpSECONDARYBUFFER[n] = new SOUNDBUFFER(len);
+
+ uint8_t *sBuf;
+ size_t sLen;
+ lpSECONDARYBUFFER[n]->Lock(&sBuf, &sLen);
+ memcpy(sBuf, buf, sLen);
+ lpSECONDARYBUFFER[n]->Unlock();
+ lpSECONDARYBUFFER[n]->SetFrequency(22050);
+ }
+
+ //Free buffer, we're done with it
+ if (buf)
+ {
+ free(buf);
+ buf = nullptr;
+ }
+ }
return true;
}
}
--- a/src/PixTone.cpp
+++ b/src/PixTone.cpp
@@ -10,6 +10,7 @@
#include "PixTone.h"
int8_t gWaveModelTable[6][0x100];
+bool wave_tables_made;
void MakeWaveTables()
{
@@ -72,6 +73,13 @@
bool MakePixelWaveData(const std::vector<double>& pxtData, uint8_t *data)
{
+ //Make wave tables if not created already
+ if (!wave_tables_made)
+ {
+ MakeWaveTables();
+ wave_tables_made = true;
+ }
+
//Get some envelope stuff
char envelopeTable[0x100];
memset(envelopeTable, 0, sizeof(envelopeTable));
--- a/src/Sound.cpp
+++ b/src/Sound.cpp
@@ -268,38 +268,6 @@
//Start organya
StartOrganya();
-
- //Load sound effects
- MakeWaveTables();
-
- char path[0x100];
- uint8_t *buf = nullptr;
- size_t len;
-
- for (unsigned int n = 0; n < SOUND_NO; n++)
- {
- sprintf(path, "%2.2X.pxt", n);
-
- if (LoadPxt(path, &buf, &len))
- {
- lpSECONDARYBUFFER[n] = new SOUNDBUFFER(len);
-
- uint8_t *sBuf;
- size_t sLen;
- lpSECONDARYBUFFER[n]->Lock(&sBuf, &sLen);
- memcpy(sBuf, buf, sLen);
- lpSECONDARYBUFFER[n]->Unlock();
- lpSECONDARYBUFFER[n]->SetFrequency(22050);
- }
-
- //Free buffer, we're done with it
- if (buf)
- {
- free(buf);
- buf = nullptr;
- }
- }
-
return true;
}
--
⑨