From ac0e8bc247567261a3133a905933a472b4c6536c Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Thu, 27 Jul 2023 21:45:53 +0300 Subject: [PATCH] Munt MT-32/CM-32L MIDI emulation --- devices.cpp | 6 + include/midiemu.h | 8 + midiemu.cpp | 254 ++++++++++++++++++ od-win32/midi.cpp | 8 + od-win32/midi.h | 7 +- od-win32/parser.cpp | 43 ++- od-win32/parser.h | 5 +- od-win32/serial_win32.cpp | 5 +- od-win32/sysconfig.h | 1 + od-win32/win32gfx.cpp | 11 +- od-win32/winuae_msvc15/winuae_msvc.vcxproj | 25 +- .../winuae_msvc15/winuae_msvc.vcxproj.filters | 3 + 12 files changed, 351 insertions(+), 25 deletions(-) create mode 100644 include/midiemu.h create mode 100644 midiemu.cpp diff --git a/devices.cpp b/devices.cpp index d3401609..7da93ac6 100644 --- a/devices.cpp +++ b/devices.cpp @@ -57,6 +57,9 @@ #include "videograb.h" #include "rommgr.h" #include "newcpu.h" +#ifdef WITH_MIDIEMU +#include "midiemu.h" +#endif #ifdef RETROPLATFORM #include "rp.h" #endif @@ -287,6 +290,9 @@ void devices_update_sound(float clk, float syncadjust) update_sndboard_sound (clk / syncadjust); update_cda_sound(clk / syncadjust); x86_update_sound(clk / syncadjust); +#ifdef WITH_MIDIEMU + midi_update_sound(clk / syncadjust); +#endif } void devices_update_sync(float svpos, float syncadjust) diff --git a/include/midiemu.h b/include/midiemu.h new file mode 100644 index 00000000..283bdfde --- /dev/null +++ b/include/midiemu.h @@ -0,0 +1,8 @@ + +extern int midi_emu; +extern void midi_emu_close(void); +extern int midi_emu_open(const TCHAR *); +extern void midi_emu_parse(uae_u8 *midi, int len); +extern bool midi_emu_available(const TCHAR *); +extern void midi_emu_reopen(void); +extern void midi_update_sound(float); diff --git a/midiemu.cpp b/midiemu.cpp new file mode 100644 index 00000000..a121f3e6 --- /dev/null +++ b/midiemu.cpp @@ -0,0 +1,254 @@ + +#include "sysconfig.h" +#include "sysdeps.h" +#include "options.h" + +#include "fsdb.h" +#include "uae.h" +#include "audio.h" +#define MT32EMU_API_TYPE 1 +#include +#include "midiemu.h" +#include "parser.h" + +// MUNT MT-32/CM-32L emulation + +static mt32emu_context mt32context; +static int midi_emu_streamid; +static float base_midi_emu_event; +static int midi_evt_time; +static int midi_emu_freq; +static uae_s16 midi_volume; +int midi_emu; + +static const TCHAR *cm32lctl[] = { + _T("ctrl_cm32ln_1_00"), + _T("ctrl_cm32l_1_02"), + _T("ctrl_cm32l_1_00"), + NULL +}; +static const TCHAR *mt32ctl[] = { + _T("ctrl_mt32_1_07"), + _T("ctrl_mt32_1_06"), + _T("ctrl_mt32_1_05"), + _T("ctrl_mt32_1_04"), + _T("ctrl_mt32_bluer"), + _T("ctrl_mt32_2_04"), + _T("ctrl_mt32_2_07"), + _T("ctrl_mt32_2_06"), + _T("ctrl_mt32_2_03"), + NULL +}; + +static bool check_rom(const TCHAR *path, const TCHAR *name) +{ + TCHAR rpath[MAX_DPATH]; + _tcscpy(rpath, path); + _tcscat(rpath, name); + _tcscat(rpath, _T(".rom")); + bool exists = my_existsfile(rpath); + return exists; +} + +static bool load_rom(const TCHAR *path, const TCHAR *name) +{ + mt32emu_return_code err; + TCHAR rpath[MAX_DPATH]; + _tcscpy(rpath, path); + _tcscat(rpath, name); + _tcscat(rpath, _T(".rom")); + write_log(_T("mt32emu_add_rom_file(%s)\n"), rpath); + char *n = ua(rpath); + err = mt32emu_add_rom_file(mt32context, n); + xfree(n); + if (err < 0) { + _tcscpy(rpath, path); + _tcscat(rpath, name); + _tcscat(rpath, _T("_a.rom")); + char *n = ua(rpath); + err = mt32emu_add_rom_file(mt32context, n); + xfree(n); + if (err >= 0) { + _tcscpy(rpath, path); + _tcscat(rpath, name); + _tcscat(rpath, _T("_b.rom")); + char *n = ua(rpath); + err = mt32emu_add_rom_file(mt32context, n); + xfree(n); + } + } + write_log("-> %d\n", err); + return err >= 0; +} + +static void midi_emu_add_roms(void) +{ + TCHAR path[MAX_DPATH]; + fetch_rompath(path, sizeof(path) / sizeof(TCHAR)); + _tcscat(path, _T("mt32-roms\\")); + if (!my_existsdir(path)) { + _tcscpy(path, _T("C:\\mt32-rom-data\\")); + } + if (!my_existsdir(path)) { + write_log(_T("mt32emu: rom path missing\n")); + return; + } + if (midi_emu == 1) { + if (!load_rom(path, _T("pcm_mt32"))) { + load_rom(path, _T("pcm_mt32_l")); + load_rom(path, _T("pcm_mt32_h")); + } + } else { + if (!load_rom(path, _T("pcm_cm32l"))) { + load_rom(path, _T("pcm_mt32")); + load_rom(path, _T("pcm_cm32l_h")); + } + } + const TCHAR **ctl = midi_emu == 1 ? mt32ctl : cm32lctl; + for (int i = 0; ctl[i]; i++) { + if (load_rom(path, ctl[i])) { + break; + } + } +} + +bool midi_emu_available(const TCHAR *id) +{ + TCHAR path[MAX_DPATH]; + int me = 0; + + if (_tcsstr(id, _T("MT-32"))) { + me = 1; + } else if (_tcsstr(id, _T("CM-32L"))) { + me = 2; + } else { + return false; + } + + fetch_rompath(path, sizeof(path) / sizeof(TCHAR)); + _tcscat(path, _T("mt32-roms\\")); + if (!my_existsdir(path)) { + _tcscpy(path, _T("C:\\mt32-rom-data\\")); + } + if (!my_existsdir(path)) { + return false; + } + if (me == 1) { + if (!check_rom(path, _T("pcm_mt32"))) { + if (!check_rom(path, _T("pcm_mt32_l")) || !check_rom(path, _T("pcm_mt32_h"))) { + return false; + } + } + } else { + if (!check_rom(path, _T("pcm_cm32l"))) { + if (!check_rom(path, _T("pcm_mt32")) || check_rom(path, _T("pcm_cm32l_h"))) { + return false; + } + } + } + const TCHAR **ctl = me == 1 ? mt32ctl : cm32lctl; + for (int i = 0; ctl[i]; i++) { + if (check_rom(path, ctl[i])) { + return true; + } + } + return false; +} + +void midi_update_sound(float v) +{ + base_midi_emu_event = v; + midi_volume = (100 - currprefs.sound_volume_midi) * 32768 / 100; +} + +static bool audio_state_midi_emu(int streamid, void *params) +{ + int sample[2] = { 0 }; + + if (mt32context) { + int vol = currprefs.sound_volume_midi; + mt32emu_bit16s stream[2]; + mt32emu_render_bit16s(mt32context, stream, 1); + sample[0] = stream[0] * midi_volume / 32768; + sample[1] = stream[1] * midi_volume / 32768; + } + + midi_evt_time = (int)(base_midi_emu_event * CYCLE_UNIT / midi_emu_freq); + audio_state_stream_state(streamid, sample, 2, midi_evt_time); + return true; +} + +void midi_emu_parse(uae_u8 *midi, int len) +{ + if (mt32context) { + mt32emu_parse_stream(mt32context, midi, len); + } +} + +void midi_emu_close(void) +{ + midi_emu = 0; + if (midi_emu_streamid) { + audio_enable_stream(false, midi_emu_streamid, 0, NULL, NULL); + midi_emu_streamid = 0; + } + if (mt32context) { + mt32emu_close_synth(mt32context); + mt32emu_free_context(mt32context); + } + mt32context = NULL; +} + +int midi_emu_open(const TCHAR *id) +{ + mt32emu_return_code err; + mt32emu_rom_info ri; + + if (_tcsstr(id, _T("MT-32"))) { + midi_emu = 1; + } else if (_tcsstr(id, _T("CM-32L"))) { + midi_emu = 2; + } else { + return 0; + } + const char *s = mt32emu_get_library_version_string(); + write_log("mt32emu version: %s\n", s); + mt32context = mt32emu_create_context((mt32emu_report_handler_i)NULL, NULL); + if (!mt32context) { + write_log("mt32emu_create_context() failed\n"); + return 0; + } + midi_emu_add_roms(); + mt32emu_set_analog_output_mode(mt32context, MT32EMU_AOM_ACCURATE); + mt32emu_get_rom_info(mt32context, &ri); + write_log("mt32emu control_rom_id: %s\n", ri.control_rom_id); + write_log("mt32emu control_rom_description: %s\n", ri.control_rom_description); + write_log("mt32emu control_rom_sha1_digest: %s\n", ri.control_rom_sha1_digest); + write_log("mt32emu pcm_rom_id: %s\n", ri.pcm_rom_id); + write_log("mt32emu pcm_rom_description: %s\n", ri.pcm_rom_description); + write_log("mt32emu pcm_rom_sha1_digest: %s\n", ri.pcm_rom_sha1_digest); + err = mt32emu_open_synth(mt32context); + if (err != MT32EMU_RC_OK) { + write_log("mt32emu_open_synth() failed: %d\n", err); + midi_emu_close(); + return 0; + } + midi_emu_freq = mt32emu_get_actual_stereo_output_samplerate(mt32context); + write_log("mt32emu frequency: %d\n", midi_emu_freq); + midi_emu_streamid = audio_enable_stream(true, -1, 2, audio_state_midi_emu, NULL); + + return 1; +} + +void midi_emu_reopen(void) +{ + if (midi_emu) { + midi_emu_close(); + if (currprefs.win32_midioutdev >= 0) { + TCHAR *name = midioutportinfo[currprefs.win32_midioutdev]->name; + if (!_tcsncmp(name, _T("Munt "), 5)) { + midi_emu_open(name); + } + } + } +} \ No newline at end of file diff --git a/od-win32/midi.cpp b/od-win32/midi.cpp index 249326d5..53992df1 100644 --- a/od-win32/midi.cpp +++ b/od-win32/midi.cpp @@ -740,3 +740,11 @@ void Midi_Close(void) DeleteCriticalSection(&cs_proc); } } + +void Midi_Reopen(void) +{ + if (midi_ready) { + Midi_Close(); + Midi_Open(); + } +} diff --git a/od-win32/midi.h b/od-win32/midi.h index a137c239..e5278ab5 100644 --- a/od-win32/midi.h +++ b/od-win32/midi.h @@ -51,9 +51,10 @@ typedef enum extern BOOL midi_ready; -extern int Midi_Parse (midi_direction_e direction, BYTE *c); -extern int Midi_Open (void); -extern void Midi_Close (void); +extern int Midi_Parse(midi_direction_e direction, BYTE *c); +extern int Midi_Open(void); +extern void Midi_Close(void); +extern void Midi_Reopen(void); extern LONG getmidibyte(void); extern int ismidibyte(void); diff --git a/od-win32/parser.cpp b/od-win32/parser.cpp index 8ba42148..f9bf023f 100644 --- a/od-win32/parser.cpp +++ b/od-win32/parser.cpp @@ -56,6 +56,9 @@ #include "uaeipc.h" #include "xwin.h" #include "drawing.h" +#ifdef WITH_MIDIEMU +#include "midiemu.h" +#endif #ifdef RETROPLATFORM #include "rp.h" #endif @@ -1132,6 +1135,11 @@ void closeser (void) //is the same and do not open midi), so setting serper to different value helps serper = 0x30; } +#ifdef WITH_MIDIEMU + if (midi_emu) { + midi_emu_close(); + } +#endif if(writeevent) CloseHandle(writeevent); writeevent = 0; @@ -1172,6 +1180,11 @@ void writeser (int c) tcp_disconnect (); } } +#ifdef WITH_MIDIEMU + } else if (midi_emu) { + uae_u8 b = (uae_u8)c; + midi_emu_parse(&b, 1); +#endif } else if (midi_ready) { BYTE outchar = (BYTE)c; Midi_Parse (midi_output, &outchar); @@ -1374,10 +1387,19 @@ void setserstat (int mask, int onoff) } } -int setbaud (long baud) +int setbaud(int baud, int org_baud) { - if(baud == 31400 && currprefs.win32_midioutdev >= -1) { + if(org_baud == 31400 && currprefs.win32_midioutdev >= -1) { /* MIDI baud-rate */ +#ifdef WITH_MIDIEMU + if (currprefs.win32_midioutdev >= 0) { + TCHAR *name = midioutportinfo[currprefs.win32_midioutdev]->name; + if (!_tcsncmp(name, _T("Munt "), 5)) { + midi_emu_open(name); + return 1; + } + } +#endif if (!midi_ready) { if (Midi_Open()) write_log (_T("Midi enabled\n")); @@ -1387,6 +1409,11 @@ int setbaud (long baud) if (midi_ready) { Midi_Close(); } +#ifdef WITH_MIDIEMU + if (midi_emu) { + midi_emu_close(); + } +#endif if (!currprefs.use_serial) return 1; if (hCom != INVALID_HANDLE_VALUE) { @@ -1699,6 +1726,18 @@ int enummidiports (void) } } } +#ifdef WITH_MIDIEMU + midioutportinfo[num] = xcalloc(struct midiportinfo, 1); + midioutportinfo[num]->label = midi_emu_available(_T("MT-32")) ? my_strdup(_T("Munt MT-32")) : my_strdup(_T("Munt MT-32 (Missing ROMs)")); + midioutportinfo[num]->name = my_strdup(_T("Munt MT-32")); + midioutportinfo[num]->devid = num; + num++; + midioutportinfo[num] = xcalloc(struct midiportinfo, 1); + midioutportinfo[num]->label = midi_emu_available(_T("CM-32L")) ? my_strdup(_T("Munt CM-32L")) : my_strdup(_T("Munt CM-32L (Missing ROMs)")); + midioutportinfo[num]->name = my_strdup(_T("Munt CM-32L")); + midioutportinfo[num]->devid = num; + num++; +#endif num = innum; for (i = 0; i < num && i < MAX_MIDI_PORTS - 1; i++) { if (midiInGetDevCaps (i, &midiInCaps, sizeof (midiInCaps)) != MMSYSERR_NOERROR) { diff --git a/od-win32/parser.h b/od-win32/parser.h index ccf905cc..6fac433c 100644 --- a/od-win32/parser.h +++ b/od-win32/parser.h @@ -9,7 +9,7 @@ #define PRTBUFSIZE 65536 -int setbaud(long baud ); +int setbaud(int baud, int origbaud); void getserstat(int *status); void setserstat(int mask, int onoff); int readser(int *buffer); @@ -48,7 +48,8 @@ extern int load_ghostscript (void); struct midiportinfo { TCHAR *name; - unsigned int devid; + TCHAR *label; + int devid; }; extern struct midiportinfo *midiinportinfo[MAX_MIDI_PORTS]; extern struct midiportinfo *midioutportinfo[MAX_MIDI_PORTS]; diff --git a/od-win32/serial_win32.cpp b/od-win32/serial_win32.cpp index 1a1dd32f..07ea6cc1 100644 --- a/od-win32/serial_win32.cpp +++ b/od-win32/serial_win32.cpp @@ -220,7 +220,7 @@ static void sersend_end(uae_u32 v); void SERPER (uae_u16 w) { - int baud = 0, i, per; + int baud = 0, mbaud = 0, i, per; int oldper = serper; static int warned; @@ -247,6 +247,7 @@ void SERPER (uae_u16 w) if (baud <= 0) { baud = allowed_baudrates[1]; } + mbaud = baud; serial_period_hsyncs = (((serper & 0x7fff) + 1) * (1 + 8 + ninebit + 1 - 1)) / maxhpos; if (serial_period_hsyncs <= 0) @@ -281,7 +282,7 @@ void SERPER (uae_u16 w) serial_send_previous = -1; #ifdef SERIAL_PORT - setbaud (baud); + setbaud(baud, mbaud); #endif // mid transmit period change diff --git a/od-win32/sysconfig.h b/od-win32/sysconfig.h index acb4e290..04e917c1 100644 --- a/od-win32/sysconfig.h +++ b/od-win32/sysconfig.h @@ -116,6 +116,7 @@ #define WITH_THREADED_CPU #define WITH_SOFTFLOAT #define FLOPPYBRIDGE +#define WITH_MIDIEMU #else diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index 80b4e18e..db96cf64 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -2616,11 +2616,14 @@ int check_prefs_changed_gfx(void) currprefs.win32_midioutdev = changed_prefs.win32_midioutdev; currprefs.sound_volume_midi = changed_prefs.sound_volume_midi; currprefs.win32_midirouter = changed_prefs.win32_midirouter; + #ifdef SERIAL_PORT - if (midi_ready) { - Midi_Close (); - Midi_Open (); - } + serial_exit(); + serial_init(); + Midi_Reopen(); +#endif +#ifdef WITH_MIDIEMU + midi_emu_reopen(); #endif } diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj b/od-win32/winuae_msvc15/winuae_msvc.vcxproj index a3507874..35119929 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj @@ -371,7 +371,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -452,7 +452,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -534,7 +534,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -615,7 +615,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -692,7 +692,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -766,7 +766,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -841,7 +841,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -918,7 +918,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -994,7 +994,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -1072,7 +1072,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;shlwapi.lib;libpng16.lib;lglcd.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -1154,7 +1154,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -1231,7 +1231,7 @@ 0x0409 - ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;%(AdditionalDependencies) + ws2_32.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;gdiplus.lib;effects11.lib;Msimg32.lib;Dwmapi.lib;mt32emu.lib;%(AdditionalDependencies) NotSet $(OutDir)$(TargetName)$(TargetExt) true @@ -1345,6 +1345,7 @@ + diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters index 808e4271..9a92b75e 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters @@ -988,6 +988,9 @@ win32 + + common + -- 2.47.3