Now build on x64 platform, still need lots of rework...
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# Makefile for Linux and SDL wrapper driver...
|
||||
|
||||
CC = clang
|
||||
CC = gcc
|
||||
AR = ar
|
||||
RANLIB = ranlib
|
||||
STRIP = strip
|
||||
CFLAGS = -g -c -Wall -O2 -D__SDL__ `sdl-config --cflags` -arch i386
|
||||
LFLAGS = -L../lib/SDL -laudio `sdl-config --libs` -arch i386
|
||||
CFLAGS = -g -c -Wall -O2 -D__SDL__ `sdl-config --cflags` -Wall -Werror
|
||||
LFLAGS = -L../lib/SDL -laudio `sdl-config --libs`
|
||||
|
||||
OBJS = audio.o wavfile.o xmfile.o s3mfile.o modfile.o mtmfile.o \
|
||||
iofile.o modeng.o nondrv.o mixdrv.o sdldrv.o
|
||||
|
||||
@@ -45,14 +45,14 @@ extern "C" {
|
||||
typedef unsigned long DWORD;
|
||||
#else
|
||||
typedef void VOID;
|
||||
typedef int8_t CHAR;
|
||||
typedef char CHAR;
|
||||
typedef int32_t INT;
|
||||
typedef int32_t LONG;
|
||||
typedef int8_t BOOL;
|
||||
|
||||
typedef uint8_t BYTE;
|
||||
typedef uint16_t WORD;
|
||||
typedef uint32_t UINT;
|
||||
typedef uint16_t UINT;
|
||||
typedef uint32_t DWORD;
|
||||
#endif
|
||||
typedef VOID* LPVOID;
|
||||
@@ -64,8 +64,8 @@ extern "C" {
|
||||
typedef WORD* LPWORD;
|
||||
typedef UINT* LPUINT;
|
||||
typedef DWORD* LPDWORD;
|
||||
typedef CHAR* LPSTR;
|
||||
typedef DWORD HANDLE;
|
||||
typedef char* LPSTR;
|
||||
typedef uintptr_t HANDLE;
|
||||
|
||||
/* helper macros */
|
||||
#define LOBYTE(s) ((BYTE)(s))
|
||||
@@ -215,7 +215,7 @@ extern "C" {
|
||||
/* audio waveform structure */
|
||||
typedef struct {
|
||||
LPBYTE lpData; /* data pointer */
|
||||
DWORD dwHandle; /* waveform handle */
|
||||
uintptr_t dwHandle; /* waveform handle */
|
||||
DWORD dwLength; /* waveform length */
|
||||
DWORD dwLoopStart; /* loop start point */
|
||||
DWORD dwLoopEnd; /* loop end point */
|
||||
@@ -277,7 +277,7 @@ extern "C" {
|
||||
|
||||
/* audio module structure */
|
||||
typedef struct {
|
||||
CHAR szModuleName[32]; /* module name */
|
||||
char szModuleName[32]; /* module name */
|
||||
WORD wFlags; /* module flags */
|
||||
WORD nOrders; /* number of orders */
|
||||
WORD nRestart; /* restart position */
|
||||
|
||||
@@ -557,11 +557,14 @@ static UINT AIAPI OpenAudio(LPAUDIOINFO lpInfo)
|
||||
Synth.lpMemory = malloc(sizeof(LONG) * 65 * 256 +
|
||||
sizeof(BYTE) * 32 * 256 + 1023);
|
||||
if (Synth.lpMemory != NULL) {
|
||||
lpVolumeTable = (LPLONG) (((DWORD) Synth.lpMemory + 1023) & ~1023);
|
||||
lpFilterTable = (LPBYTE) (lpVolumeTable + 65 * 256);
|
||||
ASetAudioMixerValue(AUDIO_MIXER_MASTER_VOLUME, 96);
|
||||
ASetAudioCallback(UpdateVoices);
|
||||
return AUDIO_ERROR_NONE;
|
||||
uint64_t tmp;
|
||||
tmp = ((uint64_t)(Synth.lpMemory) + 1023) & ~1023;
|
||||
lpVolumeTable = (LPLONG)(tmp);
|
||||
lpFilterTable = (LPBYTE) (lpVolumeTable + 65 * 256);
|
||||
ASetAudioMixerValue(AUDIO_MIXER_MASTER_VOLUME, 96);
|
||||
ASetAudioCallback(UpdateVoices);
|
||||
|
||||
return AUDIO_ERROR_NONE;
|
||||
}
|
||||
return AUDIO_ERROR_NOMEMORY;
|
||||
}
|
||||
@@ -659,7 +662,7 @@ static LONG AIAPI GetAudioDataAvail(VOID)
|
||||
static UINT AIAPI CreateAudioData(LPAUDIOWAVE lpWave)
|
||||
{
|
||||
if (lpWave != NULL) {
|
||||
lpWave->dwHandle = (DWORD) lpWave->lpData;
|
||||
lpWave->dwHandle = (uintptr_t) lpWave->lpData;
|
||||
return AUDIO_ERROR_NONE;
|
||||
}
|
||||
return AUDIO_ERROR_INVALHANDLE;
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#ifdef __GNUC__
|
||||
#include <memory.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "audio.h"
|
||||
|
||||
@@ -217,8 +217,7 @@ UINT AIAPI ALoadModuleMOD(LPSTR lpszFileName,
|
||||
}
|
||||
|
||||
/* initialize the module structure */
|
||||
strncpy(lpModule->szModuleName, Header.aModuleName,
|
||||
sizeof(Header.aModuleName));
|
||||
strncpy(lpModule->szModuleName, Header.aModuleName, sizeof(lpModule->szModuleName));
|
||||
lpModule->wFlags = AUDIO_MODULE_AMIGA | AUDIO_MODULE_PANNING;
|
||||
lpModule->nOrders = Header.nSongLength;
|
||||
lpModule->nRestart = Header.nRestart;
|
||||
@@ -262,8 +261,7 @@ UINT AIAPI ALoadModuleMOD(LPSTR lpszFileName,
|
||||
lpPatch = lpModule->aPatchTable;
|
||||
for (n = 0; n < lpModule->nPatches; n++, lpPatch++) {
|
||||
memcpy(&Sample, &Header.aSampleTable[n], sizeof(MODSAMPLEHEADER));
|
||||
strncpy(lpPatch->szPatchName, Sample.aSampleName,
|
||||
sizeof(Sample.aSampleName));
|
||||
strncpy(lpPatch->szPatchName, Sample.aSampleName, sizeof(lpPatch->szPatchName));
|
||||
if (Sample.wLength != 0) {
|
||||
if ((lpSample = (LPAUDIOSAMPLE)
|
||||
calloc(1, sizeof(AUDIOSAMPLE))) == NULL) {
|
||||
|
||||
BIN
seal-hack/src/mp
BIN
seal-hack/src/mp
Binary file not shown.
@@ -36,7 +36,7 @@ struct {
|
||||
|
||||
void Assert(UINT nErrorCode)
|
||||
{
|
||||
static CHAR szText[80];
|
||||
static char szText[80];
|
||||
|
||||
if (nErrorCode != AUDIO_ERROR_NONE) {
|
||||
AGetErrorText(nErrorCode, szText, sizeof(szText) - 1);
|
||||
@@ -194,7 +194,8 @@ int main(int argc, char *argv[])
|
||||
State.nVolume = 96;
|
||||
|
||||
/* parse command line options */
|
||||
for (n = 1; n < argc && (lpszOption = argv[n])[0] == '-'; n++) {
|
||||
for (n = 1; n < argc && argv[n][0] == '-'; n++) {
|
||||
lpszOption = argv[n];
|
||||
lpszOptArg = &lpszOption[2];
|
||||
if (strchr("crv", lpszOption[1]) && !lpszOptArg[0] && n < argc - 1)
|
||||
lpszOptArg = argv[++n];
|
||||
|
||||
@@ -126,8 +126,7 @@ static UINT MTMMakeSample(LPAUDIOPATCH lpPatch, LPMTMSAMPLE lpMTMSample)
|
||||
DWORD dwCount;
|
||||
UINT rc;
|
||||
|
||||
strncpy(lpPatch->szPatchName, lpMTMSample->szSampleName,
|
||||
sizeof(lpMTMSample->szSampleName));
|
||||
strncpy(lpPatch->szPatchName, lpMTMSample->szSampleName, sizeof(lpPatch->szPatchName) - 1);
|
||||
if (lpMTMSample->dwLength) {
|
||||
if ((lpSample = (LPAUDIOSAMPLE) calloc(1, sizeof(AUDIOSAMPLE))) == NULL)
|
||||
return AUDIO_ERROR_NOMEMORY;
|
||||
@@ -203,8 +202,7 @@ UINT AIAPI ALoadModuleMTM(LPSTR lpszFileName,
|
||||
}
|
||||
|
||||
/* build the local module header structure */
|
||||
strncpy(lpModule->szModuleName, Header.szModuleName,
|
||||
sizeof(Header.szModuleName));
|
||||
strncpy(lpModule->szModuleName, Header.szModuleName, sizeof(lpModule->szModuleName));
|
||||
lpModule->wFlags = AUDIO_MODULE_AMIGA | AUDIO_MODULE_PANNING;
|
||||
lpModule->nOrders = Header.nOrders + 1;
|
||||
lpModule->nRestart = AUDIO_MAX_ORDERS;
|
||||
|
||||
@@ -585,7 +585,7 @@ UINT AIAPI ALoadModuleS3M(LPSTR lpszFileName,
|
||||
AIOReadFile(Header.aReserved, sizeof(Header.aReserved));
|
||||
AIOReadShort(&Header.wSpecial);
|
||||
AIOReadFile(Header.aChannelTable, sizeof(Header.aChannelTable));
|
||||
printf("[%lX] vs [%lX]\n", Header.dwSCRM, S3M_SCRM_MAGIC);
|
||||
printf("[%X] vs [%lX]\n", Header.dwSCRM, S3M_SCRM_MAGIC);
|
||||
if (Header.dwSCRM != S3M_SCRM_MAGIC ||
|
||||
Header.nSongLength > S3M_MAX_ORDERS ||
|
||||
Header.nPatterns > S3M_MAX_PATTERNS ||
|
||||
|
||||
@@ -74,8 +74,9 @@ static void updatecallback(void *userdata, Uint8 *stream, int len);
|
||||
|
||||
static UINT AIAPI OpenAudio(LPAUDIOINFO lpInfo)
|
||||
{
|
||||
int nBitsPerSample, nStereoOn, nSampleRate, nFrags;
|
||||
|
||||
//int nBitsPerSample, nStereoOn, nSampleRate, nFrags;
|
||||
int nStereoOn;
|
||||
|
||||
memset(&Audio, 0, sizeof(Audio));
|
||||
|
||||
if (!SDL_WasInit(SDL_INIT_EVERYTHING))
|
||||
@@ -90,7 +91,7 @@ static UINT AIAPI OpenAudio(LPAUDIOINFO lpInfo)
|
||||
return AUDIO_ERROR_NODEVICE;
|
||||
|
||||
|
||||
nBitsPerSample = lpInfo->wFormat & AUDIO_FORMAT_16BITS ? 16 : 8;
|
||||
//nBitsPerSample = lpInfo->wFormat & AUDIO_FORMAT_16BITS ? 16 : 8;
|
||||
nStereoOn = lpInfo->wFormat & AUDIO_FORMAT_STEREO ? 1 : 0;
|
||||
/*nSampleRate = lpInfo->nSampleRate;*/
|
||||
|
||||
|
||||
@@ -184,8 +184,7 @@ UINT AIAPI ALoadModuleXM(LPSTR lpszFileName,
|
||||
}
|
||||
|
||||
/* initialize module structure */
|
||||
strncpy(lpModule->szModuleName, Header.aModuleName,
|
||||
sizeof(Header.aModuleName));
|
||||
strncpy(lpModule->szModuleName, Header.aModuleName, sizeof(lpModule->szModuleName));
|
||||
if (Header.wFlags & XM_MODULE_LINEAR)
|
||||
lpModule->wFlags |= AUDIO_MODULE_LINEAR;
|
||||
lpModule->nOrders = Header.nSongLength;
|
||||
@@ -296,8 +295,7 @@ UINT AIAPI ALoadModuleXM(LPSTR lpszFileName,
|
||||
}
|
||||
|
||||
/* initialize patch structure */
|
||||
strncpy(lpPatch->szPatchName, Patch.aPatchName,
|
||||
sizeof(Patch.aPatchName));
|
||||
strncpy(lpPatch->szPatchName, Patch.aPatchName, sizeof(lpPatch->szPatchName));
|
||||
for (m = 0; m < AUDIO_MAX_NOTES; m++) {
|
||||
lpPatch->aSampleNumber[m] = Patch.aSampleNumber[m];
|
||||
if (lpPatch->aSampleNumber[m] >= Patch.nSamples)
|
||||
@@ -365,8 +363,7 @@ UINT AIAPI ALoadModuleXM(LPSTR lpszFileName,
|
||||
AIOReadFile(Sample.aSampleName, sizeof(Sample.aSampleName));
|
||||
AIOSeekFile(Patch.dwSampleHeaderSize -
|
||||
XM_SAMPLE_HEADER_SIZE, SEEK_CUR);
|
||||
strncpy(lpSample->szSampleName, Sample.aSampleName,
|
||||
sizeof(Sample.aSampleName));
|
||||
strncpy(lpSample->szSampleName, Sample.aSampleName, sizeof(lpSample->szSampleName));
|
||||
lpSample->Wave.dwLength = Sample.dwLength;
|
||||
lpSample->Wave.dwLoopStart = Sample.dwLoopStart;
|
||||
lpSample->Wave.dwLoopEnd = Sample.dwLoopStart + Sample.dwLoopLength;
|
||||
|
||||
Reference in New Issue
Block a user