diff -Naur ucon64/src/Makefile.vc6 ucon64.vld/src/Makefile.vc6
--- ucon64/src/Makefile.vc6	2019-05-04 19:12:01.000000000 +0900
+++ ucon64.vld/src/Makefile.vc6	2019-05-07 00:56:24.721674200 +0900
@@ -1,11 +1,11 @@
 USE_PARALLEL=1
 DLOPEN=1
-#USE_ZLIB=1
+USE_ZLIB=1
 USE_DISCMAGE=1
-#USE_USB=1
+USE_USB=1
 USE_LIBCD64=1
 USE_LIBCD64_RAWIO=1
-#WINXP_TARGETING=1
+WINXP_TARGETING=1
 
 TARGETS=
 
@@ -34,7 +34,8 @@
 
 
 CC=cl.exe
-CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /wd4774 /O2 /MT \
+#CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /wd4774 /O2 /MT \
+CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /wd4774 /MT /Zi \
        /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
 # /wd4710, 'function' : function not inlined
@@ -44,12 +45,14 @@
 CFLAGS=$(CFLAGS) /I"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Include" \
        /D_USING_V110_SDK71_ /arch:IA32
 !endif
+CFLAGS=$(CFLAGS) /I"%ProgramFiles(x86)%\Visual Leak Detector\include"
 
 LDFLAGS=$(LDFLAGS) /NOLOGO /VERSION:2.2 setargv.obj
 !ifdef WINXP_TARGETING
 LDFLAGS=$(LDFLAGS) /SUBSYSTEM:CONSOLE,5.01 \
         /LIBPATH:"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib"
 !endif
+LDFLAGS=$(LDFLAGS) /LIBPATH:"%ProgramFiles(x86)%\Visual Leak Detector\lib\Win32" /DEBUG:FULL
 
 !ifdef USE_DISCMAGE
 !ifndef DLOPEN
diff -Naur ucon64/src/backup/libcd64/Makefile.vc6 ucon64.vld/src/backup/libcd64/Makefile.vc6
--- ucon64/src/backup/libcd64/Makefile.vc6	2017-11-19 22:15:27.000000000 +0900
+++ ucon64.vld/src/backup/libcd64/Makefile.vc6	2019-05-07 00:53:23.263733400 +0900
@@ -1,11 +1,12 @@
-#WINXP_TARGETING=1
+WINXP_TARGETING=1
 
 CC=cl.exe
 !ifdef DEBUG
 CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /Oi /MT /GZ /Zi \
        /DDEBUG /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
 !else
-CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT \
+#CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT \
+CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /MT /Zi \
        /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
 !endif
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
diff -Naur ucon64/src/config.h ucon64.vld/src/config.h
--- ucon64/src/config.h	1970-01-01 09:00:00.000000000 +0900
+++ ucon64.vld/src/config.h	2019-05-07 01:12:32.381698900 +0900
@@ -0,0 +1,141 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* enable debug output (default: no) */
+/* #undef DEBUG */
+
+/* enable dynamic loading of add-on libraries (default: yes) */
+#define DLOPEN 1
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `clock_nanosleep' function. */
+/* #undef HAVE_CLOCK_NANOSLEEP */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+/* #undef HAVE_DOPRNT */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `realpath' function. */
+/* #undef HAVE_REALPATH */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/io.h> header file. */
+/* #undef HAVE_SYS_IO_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have the `vprintf' function. */
+#define HAVE_VPRINTF 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ucon64-main@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "uCON64"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "uCON64 2.2.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ucon64"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.2.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* enable the use of color (default: yes) */
+#define USE_ANSI_COLOR 1
+
+/* build with libdiscmage support (default: yes) */
+#define USE_DISCMAGE 1
+
+/* build with libcd64 support (default: no) */
+#define USE_LIBCD64 1
+
+/* enable support for parallel port backup units (default: yes) */
+#define USE_PARALLEL 1
+
+/* use ppdev for parallel port I/O (default: no) */
+/* #undef USE_PPDEV */
+
+/* build with libusb support (default: no) */
+#define USE_USB 1
+
+/* build with gzip and zip support (default: yes) */
+#define USE_ZLIB 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* Visual C++ 6 doesn't allow inline in C source code. */
+#define inline __inline
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff -Naur ucon64/src/libdiscmage/Makefile.vc6 ucon64.vld/src/libdiscmage/Makefile.vc6
--- ucon64/src/libdiscmage/Makefile.vc6	2018-04-21 15:14:23.000000000 +0900
+++ ucon64.vld/src/libdiscmage/Makefile.vc6	2019-05-07 00:53:23.273733400 +0900
@@ -1,9 +1,10 @@
 DLOPEN=1
-#USE_ZLIB=1
-#WINXP_TARGETING=1
+USE_ZLIB=1
+WINXP_TARGETING=1
 
 CC=cl.exe
-CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT /DDLL \
+#CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT /DDLL \
+CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /MT /Zi /DDLL \
        /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
 # /wd4710, 'function' : function not inlined
diff -Naur ucon64/src/libdiscmage/config.h ucon64.vld/src/libdiscmage/config.h
--- ucon64/src/libdiscmage/config.h	1970-01-01 09:00:00.000000000 +0900
+++ ucon64.vld/src/libdiscmage/config.h	2019-05-07 01:12:32.381698900 +0900
@@ -0,0 +1,141 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* enable debug output (default: no) */
+/* #undef DEBUG */
+
+/* enable dynamic loading of add-on libraries (default: yes) */
+#define DLOPEN 1
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `clock_nanosleep' function. */
+/* #undef HAVE_CLOCK_NANOSLEEP */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+/* #undef HAVE_DOPRNT */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `realpath' function. */
+/* #undef HAVE_REALPATH */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/io.h> header file. */
+/* #undef HAVE_SYS_IO_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have the `vprintf' function. */
+#define HAVE_VPRINTF 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ucon64-main@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "uCON64"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "uCON64 2.2.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ucon64"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.2.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* enable the use of color (default: yes) */
+#define USE_ANSI_COLOR 1
+
+/* build with libdiscmage support (default: yes) */
+#define USE_DISCMAGE 1
+
+/* build with libcd64 support (default: no) */
+#define USE_LIBCD64 1
+
+/* enable support for parallel port backup units (default: yes) */
+#define USE_PARALLEL 1
+
+/* use ppdev for parallel port I/O (default: no) */
+/* #undef USE_PPDEV */
+
+/* build with libusb support (default: no) */
+#define USE_USB 1
+
+/* build with gzip and zip support (default: yes) */
+#define USE_ZLIB 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* Visual C++ 6 doesn't allow inline in C source code. */
+#define inline __inline
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff -Naur ucon64/src/ucon64.c ucon64.vld/src/ucon64.c
--- ucon64/src/ucon64.c	2019-04-16 02:18:01.000000000 +0900
+++ ucon64.vld/src/ucon64.c	2019-05-07 00:53:23.273733400 +0900
@@ -64,6 +64,13 @@
 #undef  _WIN32
 #endif
 #endif
+#ifdef  _MSC_VER
+#define VLD_FORCE_ENABLE
+#pragma warning(push)
+#pragma warning(disable: 4255) // function' : no function prototype given: converting '()' to '(void)'
+#include <vld.h>
+#pragma warning(pop)
+#endif
 
 #ifdef  DEBUG
 #ifdef  __GNUC__
diff -Naur ucon64/src/vld.ini ucon64.vld/src/vld.ini
--- ucon64/src/vld.ini	1970-01-01 09:00:00.000000000 +0900
+++ ucon64.vld/src/vld.ini	2019-05-07 00:53:23.283733400 +0900
@@ -0,0 +1,171 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;  Visual Leak Detector - Initialization/Configuration File
+;;  Copyright (c) 2005-2017 VLD Team
+;;
+;;  This library is free software; you can redistribute it and/or
+;;  modify it under the terms of the GNU Lesser General Public
+;;  License as published by the Free Software Foundation; either
+;;  version 2.1 of the License, or (at your option) any later version.
+;;
+;;  This library is distributed in the hope that it will be useful,
+;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;  Lesser General Public License for more details.
+;;
+;;  You should have received a copy of the GNU Lesser General Public
+;;  License along with this library; if not, write to the Free Software
+;;  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+;;
+;;  See COPYING.txt for the full terms of the GNU Lesser General Public License.
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; Any options left blank or not present will revert to their default values.
+[Options]
+
+; The main on/off switch. If off, Visual Leak Detector will be completely
+; disabled. It will do nothing but print a message to the debugger indicating
+; that it has been turned off.
+;
+;  Valid Values: on, off
+;  Default: on
+;
+VLD = on
+
+; If yes, duplicate leaks (those that are identical) are not shown individually.
+; Only the first such leak is shown, along with a number indicating the total
+; number of duplicate leaks.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+AggregateDuplicates = no
+
+; Lists any additional modules to be included in memory leak detection. This can
+; be useful for checking for memory leaks in debug builds of 3rd party modules
+; which can not be easily rebuilt with '#include "vld.h"'. This option should be
+; used only if absolutely necessary and only if you really know what you are
+; doing.
+;
+;   CAUTION: Avoid listing any modules that link with the release CRT libraries.
+;     Only modules that link with the debug CRT libraries should be listed here.
+;     Doing otherwise might result in false memory leak reports or even crashes.
+;
+;   Valid Values: Any list containing module names (i.e. names of EXEs or DLLs)
+;   Default: None.
+;
+ForceIncludeModules = 
+
+; Maximum number of data bytes to display for each leaked block. If zero, then
+; the data dump is completely suppressed and only call stacks are shown.
+; Limiting this to a low number can be useful if any of the leaked blocks are
+; very large and cause unnecessary clutter in the memory leak report.
+;
+;   Value Values: 0 - 4294967295
+;   Default: 256
+;
+MaxDataDump = 
+
+; Maximum number of call stack frames to trace back during leak detection.
+; Limiting this to a low number can reduce the CPU utilization overhead imposed
+; by memory leak detection, especially when using the slower "safe" stack
+; walking method (see StackWalkMethod below).
+;
+;   Valid Values: 1 - 4294967295
+;   Default: 64
+;
+MaxTraceFrames = 
+
+; Sets the type of encoding to use for the generated memory leak report. This
+; option is really only useful in conjuction with sending the report to a file.
+; Sending a Unicode encoded report to the debugger is not useful because the
+; debugger cannot display Unicode characters. Using Unicode encoding might be
+; useful if the data contained in leaked blocks is likely to consist of Unicode
+; text.
+;
+;   Valid Values: ascii, unicode
+;   Default: ascii
+;
+ReportEncoding = ascii
+
+; Sets the report file destination, if reporting to file is enabled. A relative
+; path may be specified and is considered relative to the process' working
+; directory.
+;
+;   Valid Values: Any valid path and filename.
+;   Default: .\memory_leak_report.txt
+;
+ReportFile = 
+
+; Sets the report destination to either a file, the debugger, or both. If
+; reporting to file is enabled, the report is sent to the file specified by the
+; ReportFile option.
+;
+;   Valid Values: debugger, file, both
+;   Default: debugger
+;
+ReportTo = both
+
+; Turns on or off a self-test mode which is used to verify that VLD is able to
+; detect memory leaks in itself. Intended to be used for debugging VLD itself,
+; not for debugging other programs.
+;
+;   Valid Values: on, off
+;   Default: off
+;
+SelfTest = off
+
+; Selects the method to be used for walking the stack to obtain stack traces for
+; allocated memory blocks. The "fast" method may not always be able to
+; successfully trace completely through all call stacks. In such cases, the
+; "safe" method may prove to more reliably obtain the full stack trace. The
+; disadvantage is that the "safe" method is significantly slower than the "fast"
+; method and will probably result in very noticeable performance degradation of
+; the program being debugged.
+;
+;   Valid Values: fast, safe
+;   Default: fast
+; 
+StackWalkMethod = fast
+
+; Determines whether memory leak detection should be initially enabled for all
+; threads, or whether it should be initially disabled for all threads. If set
+; to "yes", then any threads requiring memory leak detection to be enabled will
+; need to call VLDEnable at some point to enable leak detection for those
+; threads.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+StartDisabled = no
+
+; Determines whether or not all frames, including frames internal to the heap,
+; are traced. There will always be a number of frames internal to Visual Leak
+; Detector and C/C++ or Win32 heap APIs that aren't generally useful for
+; determining the cause of a leak. Normally these frames are skipped during the
+; stack trace, which somewhat reduces the time spent tracing and amount of data
+; collected and stored in memory. Including all frames in the stack trace, all
+; the way down into VLD's own code can, however, be useful for debugging VLD
+; itself.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+TraceInternalFrames = no
+
+; Determines whether or not report memory leaks when missing HeapFree calls.
+;
+;   Valid Values: yes, no
+;   Default: no
+;
+SkipHeapFreeLeaks = no
+
+; Determines whether or not report memory leaks generated from crt startup code.
+; These are not actual memory leaks as they are freed by crt after the VLD object
+; has been destroyed.
+;
+;   Valid Values: yes, no
+;   Default: yes
+;
+SkipCrtStartupLeaks = yes
