diff --git a/resources/logo/icon.ico b/resources/logo/icon.ico
new file mode 100644
index 0000000000..d09fe11e03
Binary files /dev/null and b/resources/logo/icon.ico differ
diff --git a/resources/logo/icon_flag.svg b/resources/logo/icon_flag.svg
new file mode 100644
index 0000000000..f84ce891ec
--- /dev/null
+++ b/resources/logo/icon_flag.svg
@@ -0,0 +1,1408 @@
+
+
+
+
diff --git a/resources/logo/icon_noflag.svg b/resources/logo/icon_noflag.svg
new file mode 100644
index 0000000000..907c9f88fe
--- /dev/null
+++ b/resources/logo/icon_noflag.svg
@@ -0,0 +1,1338 @@
+
+
+
+
diff --git a/resources/logo/icon_x1024.png b/resources/logo/icon_x1024.png
new file mode 100644
index 0000000000..98205aab94
Binary files /dev/null and b/resources/logo/icon_x1024.png differ
diff --git a/resources/logo/icon_x128.png b/resources/logo/icon_x128.png
new file mode 100644
index 0000000000..3202bbf801
Binary files /dev/null and b/resources/logo/icon_x128.png differ
diff --git a/resources/logo/icon_x16.png b/resources/logo/icon_x16.png
new file mode 100644
index 0000000000..66e94a9dee
Binary files /dev/null and b/resources/logo/icon_x16.png differ
diff --git a/resources/logo/icon_x2048.png b/resources/logo/icon_x2048.png
new file mode 100644
index 0000000000..a4610a7cb2
Binary files /dev/null and b/resources/logo/icon_x2048.png differ
diff --git a/resources/logo/icon_x256.png b/resources/logo/icon_x256.png
new file mode 100644
index 0000000000..fc1e5932ad
Binary files /dev/null and b/resources/logo/icon_x256.png differ
diff --git a/resources/logo/icon_x32.png b/resources/logo/icon_x32.png
new file mode 100644
index 0000000000..eacc66b5eb
Binary files /dev/null and b/resources/logo/icon_x32.png differ
diff --git a/resources/logo/icon_x4.png b/resources/logo/icon_x4.png
new file mode 100644
index 0000000000..08fdf34f6d
Binary files /dev/null and b/resources/logo/icon_x4.png differ
diff --git a/resources/logo/icon_x512.png b/resources/logo/icon_x512.png
new file mode 100644
index 0000000000..c8a0d4392e
Binary files /dev/null and b/resources/logo/icon_x512.png differ
diff --git a/resources/logo/icon_x64.png b/resources/logo/icon_x64.png
new file mode 100644
index 0000000000..907fab8f64
Binary files /dev/null and b/resources/logo/icon_x64.png differ
diff --git a/resources/logo/icon_x8.png b/resources/logo/icon_x8.png
new file mode 100644
index 0000000000..ad0e979458
Binary files /dev/null and b/resources/logo/icon_x8.png differ
diff --git a/resources/logo/makeico.linq b/resources/logo/makeico.linq
new file mode 100644
index 0000000000..247c87eb0b
--- /dev/null
+++ b/resources/logo/makeico.linq
@@ -0,0 +1,44 @@
+
+ System.Drawing
+ System.Drawing.Imaging
+
+
+string inputDirectory = @"C:\Users\Ted\Documents\Programming\Projects\Hacking\OpenRCT2\resources\logo";
+string outputPath = @"C:\Users\Ted\Documents\Programming\Projects\Hacking\OpenRCT2\resources\logo\icon.ico";
+int numImages = 7;
+using (FileStream fs = new FileStream(outputPath, FileMode.Create)) {
+ BinaryWriter bw = new BinaryWriter(fs);
+ bw.Write((short)0);
+ bw.Write((short)1);
+ bw.Write((short)numImages);
+
+ int dataStartOffset = 6 + (numImages * 16);
+
+ using (MemoryStream dataStream = new MemoryStream()) {
+ int size = 256;
+ for (int i = 0; i < numImages; i++) {
+ bw.Write((byte)(size == 256 ? 0 : size));
+ bw.Write((byte)(size == 256 ? 0 : size));
+ bw.Write((byte)0);
+ bw.Write((byte)0);
+ bw.Write((short)0);
+ bw.Write((short)32);
+
+ int dataOffset = (int)dataStream.Position;
+ int dataLength;
+
+ string inputImagePath = Path.Combine(inputDirectory, "icon_x" + size + ".png");
+ using (Image image = Image.FromFile(inputImagePath))
+ image.Save(dataStream, ImageFormat.Png);
+
+ dataLength = (int)dataStream.Position - dataOffset;
+ dataOffset += dataStartOffset;
+
+ bw.Write(dataLength);
+ bw.Write(dataOffset);
+
+ size /= 2;
+ }
+ bw.Write(dataStream.ToArray());
+ }
+}
\ No newline at end of file