diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/dumpbank/dumpbank.cpp | 30 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_op2.h | 20 | ||||
-rw-r--r-- | utils/gen_adldata/ini/ini_processing.cpp | 9 | ||||
-rw-r--r-- | utils/gen_adldata/ini/ini_processing_variant.h | 2 | ||||
-rw-r--r-- | utils/midiplay/adlmidiplay.cpp | 1 |
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> |