diff --git a/sys/windows/vs/FetchPrereq/fetchprereq.nmake b/sys/windows/vs/FetchPrereq/fetchprereq.nmake
new file mode 100644
index 000000000..41c5a8a6f
--- /dev/null
+++ b/sys/windows/vs/FetchPrereq/fetchprereq.nmake
@@ -0,0 +1,74 @@
+# NetHack 3.7 fetchprereq.nmake
+#==============================================================================
+#
+# The version of the game this Makefile was designed for
+NETHACK_VERSION="3.7.0"
+
+# A brief version for use in macros
+NHV=$(NETHACK_VERSION:.=)
+NHV=$(NHV:"=)
+
+# The version of Lua we want
+LUA_VERSION=5.4.6
+CURLLUASRC=https://www.lua.org/ftp/lua-$(LUA_VERSION).tar.gz
+CURLLUADST=lua-$(LUA_VERSION).tar.gz
+
+# The version of pdcursesmod that we want
+PDCDIST=pdcursesmod
+PDCURSES_VERSION = 4.4.0
+PDCURL=https://github.com/Bill-Gray/PDCursesMod/archive/refs/tags/v
+CURLPDCSRC=$(PDCURL)$(PDCURSES_VERSION).zip
+CURLPDCDST=$(PDCDIST)
+
+#
+# relative directories from root of NetHack tree.
+#
+
+LIBSDIR=lib # libraries and external bits
+SUBMSDIR=submodules # NetHack git submodules
+ROOTDIR=..\..\..\.. # root of NetHack tree relative to project file
+LIBDIR=$(ROOTDIR)\$(LIBSDIR)
+SUBMDIR=$(ROOTDIR)\$(SUBMSDIR)
+
+
+default: fetchall
+
+fetchall: libdir fetch-Lua fetch-pdcurses ..\..\..\..\include\nhlua.h
+
+fetch-lua: fetch-actual-Lua
+
+fetch-Lua: fetch-actual-Lua
+
+fetch-actual-Lua:
+ cd $(LIBDIR)
+ curl --insecure -R -O $(CURLLUASRC)
+ tar zxf lua-$(LUA_VERSION).tar.gz
+ if exist lua-$(LUA_VERSION).tar.gz del lua-$(LUA_VERSION).tar.gz
+ cd ..\sys\windows\vs\fetchprereq
+ @echo Lua has been fetched into $(LIBDIR)\lua-$(LUA_VERSION)
+
+fetch-pdcurses:
+ cd $(LIBDIR)
+ curl --insecure -L -R $(PDCURL)$(PDCURSES_VERSION).zip -o $(PDCDIST).zip
+ if not exist $(PDCDIST)\*.* mkdir $(PDCDIST)
+ tar -C $(PDCDIST) --strip-components=1 -xvf $(CURLPDCDST).zip
+ if exist $(CURLPDCDST).zip del $(CURLPDCDST).zip
+ cd ..\sys\windows\vs\fetchprereq
+ @echo $(PDCDIST) has been fetched into $(LIBDIR)\$(PDCDIST)
+
+..\..\..\..\include\nhlua.h:
+ @echo /* nhlua.h - generated by Makefile from fetchprereq.nmake */ > $@
+ @echo #include "lua.h" >> $@
+ @echo LUA_API int (lua_error) (lua_State *L) NORETURN; >> $@
+ @echo #include "lualib.h" >> $@
+ @echo #include "lauxlib.h" >> $@
+ @echo /*nhlua.h*/ >> $@
+
+libdir:
+ @if not exist $(LIBDIR)\*.* echo creating directory $(LIB:\=/)
+ @if not exist $(LIBDIR)\*.* mkdir $(LIBDIR)
+
+clean:
+
+rebuild:
+
diff --git a/sys/windows/vs/FetchPrereq/fetchprereq.vcxproj b/sys/windows/vs/FetchPrereq/fetchprereq.vcxproj
new file mode 100644
index 000000000..31e6b7dd0
--- /dev/null
+++ b/sys/windows/vs/FetchPrereq/fetchprereq.vcxproj
@@ -0,0 +1,69 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+ 17.0
+ {503AE687-C33A-45ED-93AA-83967E176D67}
+ Win32Proj
+ 10.0.22621.0
+
+
+
+ Makefile
+ true
+
+
+ Makefile
+ false
+
+
+ Makefile
+ true
+
+
+ Makefile
+ false
+
+
+
+
+
+
+
+
+
+
+
+ pushd $(vsDir)fetchprereq %26%26 nmake -F fetchprereq.nmake %26%26 popd
+ pushd $(vsDir)fetchprereq %26%26 nmake -F fetchprereq.nmake clean %26%26 popd
+ pushd $(vsDir)fetchprereq %26%26 nmake -F fetchprereq.nmake rebuild %26%26 popd
+ _DEBUG;$(NMakePreprocessorDefinitions)
+
+
+
+
+
\ No newline at end of file
diff --git a/sys/windows/vs/dirs.props b/sys/windows/vs/dirs.props
index ce7236230..dc3f7ca7b 100644
--- a/sys/windows/vs/dirs.props
+++ b/sys/windows/vs/dirs.props
@@ -1,8 +1,8 @@
-
+
+ 5.4.6
$(MSBuildProjectDirectory)\..\..\..\..\
- $(RootDir)sys\windows\vs\
$(RootDir)binary\$(Configuration)\$(Platform)\
$(ProjectDir)obj\$(Configuration)\$(Platform)\$(TargetName)\
$(ProjectDir)symbols\$(Configuration)\$(Platform)\$(TargetName)\
@@ -20,6 +20,7 @@
$(RootDir)util\
$(RootDir)sys\share\
$(RootDir)sys\windows\
+ $(SysWindDir)vs\
$(RootDir)win\share\
$(RootDir)win\tty\
$(RootDir)win\win32\
@@ -27,20 +28,14 @@
$(ObjDir)
$(RootDir)win\curses\
$(RootDir)submodules\
- $(SubmodulesDir)lua\
+ $(LibDir)lua-$(LUA_VERSION)\src\
-
- $(SubmodulesDir)PDCursesMod\
+
+ $(LibDir)pdcursesmod\
$(PDCURSESMOD)
-
- $(LibDir)PDCursesMod\
+
+ $(SubmodulesDir)pdcursesmod\
$(PDCURSESMOD)
-
- $(SubmodulesDir)PDCurses\
-
-
- $(LibDir)PDCurses\
-