diff --git a/masm64.rules b/masm64.rules
new file mode 100644
index 0000000000..8444fa3f67
--- /dev/null
+++ b/masm64.rules
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/openttd_vs80.sln b/openttd_vs80.sln
index bb2c6225c1..130cbfa32c 100644
--- a/openttd_vs80.sln
+++ b/openttd_vs80.sln
@@ -18,25 +18,43 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.ActiveCfg = Debug|Win32
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.Build.0 = Debug|Win32
+ {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.ActiveCfg = Debug|Win32
+ {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.Build.0 = Debug|Win32
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.ActiveCfg = Debug|Win32
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.Build.0 = Debug|Win32
+ {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.ActiveCfg = Debug|Win32
+ {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.Build.0 = Debug|Win32
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.ActiveCfg = Debug|Win32
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.Build.0 = Debug|Win32
+ {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.ActiveCfg = Debug|x64
+ {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.Build.0 = Debug|x64
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.ActiveCfg = Release|Win32
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.Build.0 = Release|Win32
+ {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.ActiveCfg = Release|x64
+ {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.Build.0 = Release|x64
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.ActiveCfg = Debug|Win32
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.Build.0 = Debug|Win32
+ {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.ActiveCfg = Debug|Win32
+ {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.Build.0 = Debug|Win32
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.ActiveCfg = Debug|Win32
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.Build.0 = Debug|Win32
+ {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.ActiveCfg = Debug|Win32
+ {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.Build.0 = Debug|Win32
{4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Debug|Win32.ActiveCfg = Debug|Win32
{4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Debug|Win32.Build.0 = Debug|Win32
+ {4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Debug|x64.ActiveCfg = Debug|x64
+ {4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Debug|x64.Build.0 = Debug|x64
{4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Release|Win32.ActiveCfg = Release|Win32
{4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Release|Win32.Build.0 = Release|Win32
+ {4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Release|x64.ActiveCfg = Release|x64
+ {4AECBDC3-D57E-4AFB-90BD-DDF10707588C}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/openttd_vs80.vcproj b/openttd_vs80.vcproj
index f7740f6237..9615cfe469 100644
--- a/openttd_vs80.vcproj
+++ b/openttd_vs80.vcproj
@@ -10,8 +10,14 @@
+
+
+
@@ -122,6 +131,118 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -217,6 +341,105 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -280,6 +503,14 @@
CompileAs="2"
/>
+
+
+
@@ -288,6 +519,14 @@
CompileAs="2"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1329,6 +1606,14 @@
CompileAs="2"
/>
+
+
+
@@ -1337,6 +1622,14 @@
CompileAs="2"
/>
+
+
+
+
+
+
@@ -1385,6 +1686,14 @@
CompileAs="2"
/>
+
+
+
+
+
+
@@ -1437,6 +1754,14 @@
CompileAs="2"
/>
+
+
+
+
+
+
@@ -1457,6 +1790,14 @@
CompileAs="2"
/>
+
+
+
+
+
+
@@ -1481,6 +1830,14 @@
CompileAs="2"
/>
+
+
+
+
@@ -169,6 +172,162 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+