aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/dumpbank/dumpbank.cpp30
-rw-r--r--utils/gen_adldata/file_formats/load_op2.h20
-rw-r--r--utils/gen_adldata/ini/ini_processing.cpp9
-rw-r--r--utils/gen_adldata/ini/ini_processing_variant.h2
-rw-r--r--utils/midiplay/adlmidiplay.cpp1
5 files changed, 50 insertions, 12 deletions
diff --git a/utils/dumpbank/dumpbank.cpp b/utils/dumpbank/dumpbank.cpp
index 6996681..aad3e7b 100644
--- a/utils/dumpbank/dumpbank.cpp
+++ b/utils/dumpbank/dumpbank.cpp
@@ -5,19 +5,29 @@
#include <vector>
#include <cstring>
+#ifndef _MSC_VER
+#define PACKED_STRUCT __attribute__((packed))
+#else
+#define PACKED_STRUCT
+#endif
+
+#ifdef _MSC_VER
+#pragma pack(push,1)
+#endif
+
struct BNK1_header
{
char maj_vers, min_vers;
char signature[6]; // "ADLIB-"
unsigned short ins_used, ins_entries;
unsigned name_list, inst_data;
-} __attribute__((packed));
+} PACKED_STRUCT;
struct BNK1_record
{
unsigned short index;
unsigned char used;
char name[9];
-} __attribute__((packed));
+} PACKED_STRUCT;
struct OPL2_op
{
unsigned char key_scale_lvl;
@@ -33,14 +43,14 @@ struct OPL2_op
unsigned char pitch_vib;
unsigned char env_scaling;
unsigned char connection;
-} __attribute__((packed));
+} PACKED_STRUCT;
struct BNK1_instrument
{
unsigned char sound_mode;
unsigned char voice_num;
OPL2_op ops[2];
unsigned char waveforms[2];
-} __attribute__((packed)); // conventional Ad Lib instrument maker bankfile patch
+} PACKED_STRUCT; // conventional Ad Lib instrument maker bankfile patch
struct BNK2_header
{
@@ -49,7 +59,7 @@ struct BNK2_header
char filler[10];
unsigned short ins_entries, ins_used;
int lostSpace;
-} __attribute__((packed));
+} PACKED_STRUCT;
struct BNK2_record
{
char O3_sig[3];
@@ -57,13 +67,13 @@ struct BNK2_record
char used;
int attrib, dataOffset;
unsigned short blockSize, allocBSize;
-} __attribute__((packed));
+} PACKED_STRUCT;
struct OPL3_op
{
unsigned char AVEKMMMM, KKLLLLLL;
unsigned char AAAADDDD, SSSSRRRR;
unsigned char DxxxxWWW, xxxxxxxx;
-} __attribute__((packed));
+} PACKED_STRUCT;
struct BNK2_instrument
{
OPL3_op ops[4];
@@ -71,7 +81,11 @@ struct BNK2_instrument
unsigned char xxP24NNN;
unsigned char TTTTTTTT;
unsigned char xxxxxxxx;
-} __attribute__((packed)); // Ad Lib Gold instrument maker bankfile patch
+} PACKED_STRUCT; // Ad Lib Gold instrument maker bankfile patch
+
+#ifdef _MSC_VER
+#pragma pack(pop)
+#endif
static void LoadBNK1(const std::vector<unsigned char>& data)
{
diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h
index 30a118f..58d6988 100644
--- a/utils/gen_adldata/file_formats/load_op2.h
+++ b/utils/gen_adldata/file_formats/load_op2.h
@@ -3,7 +3,16 @@
#include "../progs_cache.h"
-#pragma pack(push, 1)
+#ifndef _MSC_VER
+#define PACKED_STRUCT __attribute__((packed))
+#else
+#define PACKED_STRUCT
+#endif
+
+#ifdef _MSC_VER
+#pragma pack(push,1)
+#endif
+
struct Doom_OPL2instrument
{
unsigned char trem_vibr_1; /* OP 1: tremolo/vibrato/sustain/KSR/multi */
@@ -21,8 +30,7 @@ struct Doom_OPL2instrument
unsigned char level_2; /* OP 2: output level */
unsigned char unused;
short basenote; /* base note offset */
-} __attribute__((packed));
-#pragma pack(pop)
+} PACKED_STRUCT;
struct Doom_opl_instr
{
@@ -34,7 +42,11 @@ struct Doom_opl_instr
unsigned char finetune;
unsigned char note;
struct Doom_OPL2instrument patchdata[2];
-} __attribute__((packed));
+} PACKED_STRUCT;
+
+#ifdef _MSC_VER
+#pragma pack(pop)
+#endif
static bool LoadDoom(const char *fn, unsigned bank, const char *prefix)
diff --git a/utils/gen_adldata/ini/ini_processing.cpp b/utils/gen_adldata/ini/ini_processing.cpp
index 2f15821..4ef43fc 100644
--- a/utils/gen_adldata/ini/ini_processing.cpp
+++ b/utils/gen_adldata/ini/ini_processing.cpp
@@ -30,6 +30,7 @@ DEALINGS IN THE SOFTWARE.
#include "ini_processing.h"
#include <cstdio>
+#include <cctype>
#include <cstring>
#include <cstdlib>
#include <clocale>
@@ -37,6 +38,14 @@ DEALINGS IN THE SOFTWARE.
#include <algorithm>
#include <assert.h>
#ifdef _WIN32
+ #ifdef _MSC_VER
+ #ifdef _WIN64
+ typedef __int64 ssize_t;
+ #else
+ typedef __int32 ssize_t;
+ #endif
+ #define NOMINMAX //Don't override std::min and std::max
+ #endif
#include <windows.h>
#endif
diff --git a/utils/gen_adldata/ini/ini_processing_variant.h b/utils/gen_adldata/ini/ini_processing_variant.h
index 34f999a..3395e4e 100644
--- a/utils/gen_adldata/ini/ini_processing_variant.h
+++ b/utils/gen_adldata/ini/ini_processing_variant.h
@@ -32,6 +32,8 @@ INI Processor and target value (to be compatible with QSettings)
#include <string>
#include <cstring>
+#include <algorithm>
+#include <cctype>
#include <cstdlib>
#ifdef INI_PROCESSING_ALLOW_QT_TYPES
#include <QString>
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp
index 7c8766d..9fb9033 100644
--- a/utils/midiplay/adlmidiplay.cpp
+++ b/utils/midiplay/adlmidiplay.cpp
@@ -2,6 +2,7 @@
#include <vector>
#include <string>
#include <cstdio>
+#include <cctype>
#include <cstdlib>
#include <cstring>
#include <deque>