#include "videograb.h"
#include "rommgr.h"
#include "newcpu.h"
+#ifdef WITH_MIDIEMU
+#include "midiemu.h"
+#endif
#ifdef RETROPLATFORM
#include "rp.h"
#endif
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)
--- /dev/null
+
+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);
--- /dev/null
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+#include "options.h"
+
+#include "fsdb.h"
+#include "uae.h"
+#include "audio.h"
+#define MT32EMU_API_TYPE 1
+#include <mt32emu.h>
+#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
DeleteCriticalSection(&cs_proc);
}
}
+
+void Midi_Reopen(void)
+{
+ if (midi_ready) {
+ Midi_Close();
+ Midi_Open();
+ }
+}
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);
#include "uaeipc.h"
#include "xwin.h"
#include "drawing.h"
+#ifdef WITH_MIDIEMU
+#include "midiemu.h"
+#endif
#ifdef RETROPLATFORM
#include "rp.h"
#endif
//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;
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);
}
}
-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"));
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) {
}
}
}
+#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) {
#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);
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];
void SERPER (uae_u16 w)
{
- int baud = 0, i, per;
+ int baud = 0, mbaud = 0, i, per;
int oldper = serper;
static int warned;
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)
serial_send_previous = -1;
#ifdef SERIAL_PORT
- setbaud (baud);
+ setbaud(baud, mbaud);
#endif
// mid transmit period change
#define WITH_THREADED_CPU
#define WITH_SOFTFLOAT
#define FLOPPYBRIDGE
+#define WITH_MIDIEMU
#else
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
}
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;%(AdditionalDependencies)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ClCompile Include="..\..\luascript.cpp" />
<ClCompile Include="..\..\mame\a2410.cpp" />
<ClCompile Include="..\..\mame\tm34010\tms34010.cpp" />
+ <ClCompile Include="..\..\midiemu.cpp" />
<ClCompile Include="..\..\ncr9x_scsi.cpp" />
<ClCompile Include="..\..\newcpu_common.cpp" />
<ClCompile Include="..\..\pcem\386.cpp" />
<ClCompile Include="..\darkmode.cpp">
<Filter>win32</Filter>
</ClCompile>
+ <ClCompile Include="..\..\midiemu.cpp">
+ <Filter>common</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\resources\35floppy.ico">