From 4942ae7905dcf87856871c8a009d579cb3158514 Mon Sep 17 00:00:00 2001
From: zeromus <zeromus@users.noreply.github.com>
Date: Wed, 4 Nov 2015 02:08:11 -0600
Subject: [PATCH] CDL - revise UI

---
 .../BizHawk.Client.EmuHawk.csproj             |   1 +
 BizHawk.Client.EmuHawk/MainForm.Designer.cs   |  17 +-
 .../Properties/Resources.Designer.cs          |  10 +
 .../Properties/Resources.resx                 | 145 +++++------
 BizHawk.Client.EmuHawk/images/cdlogger.ico    | Bin 0 -> 894 bytes
 BizHawk.Client.EmuHawk/tools/CDL.Designer.cs  | 235 +++++++++++++++---
 BizHawk.Client.EmuHawk/tools/CDL.cs           | 213 +++++++++++-----
 BizHawk.Client.EmuHawk/tools/CDL.resx         | 120 ++++-----
 8 files changed, 496 insertions(+), 245 deletions(-)
 create mode 100644 BizHawk.Client.EmuHawk/images/cdlogger.ico

diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index ba6f5b5b6b..7214ec93ac 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -1972,6 +1972,7 @@
     <None Include="images\HawkInLove.png" />
     <None Include="images\ControllerImages\AppleIIKeyboard.png" />
     <None Include="images\BlankCursor.cur" />
+    <None Include="images\cdlogger.ico" />
     <Content Include="images\logo.ico" />
     <None Include="images\Paste.png" />
     <None Include="images\reboot.png" />
diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs
index cd4615694f..9b105d4e18 100644
--- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs
+++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs
@@ -196,6 +196,7 @@
 			this.RamSearchMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.HexEditorMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.TraceLoggerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+			this.CodeDataLoggerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.DebuggerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.TAStudioMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.MacroToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -404,7 +405,6 @@
 			this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator();
 			this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.timerMouseIdle = new System.Windows.Forms.Timer(this.components);
-			this.CodeDataLoggerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.MainformMenu.SuspendLayout();
 			this.MainStatusBar.SuspendLayout();
 			this.MainFormContextMenu.SuspendLayout();
@@ -1879,6 +1879,14 @@
 			this.TraceLoggerMenuItem.Text = "Trace &Logger";
 			this.TraceLoggerMenuItem.Click += new System.EventHandler(this.TraceLoggerMenuItem_Click);
 			// 
+			// CodeDataLoggerMenuItem
+			// 
+			this.CodeDataLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.cdlogger;
+			this.CodeDataLoggerMenuItem.Name = "CodeDataLoggerMenuItem";
+			this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(162, 22);
+			this.CodeDataLoggerMenuItem.Text = "Code-Data Logger";
+			this.CodeDataLoggerMenuItem.Click += new System.EventHandler(this.CodeDataLoggerMenuItem_Click);
+			// 
 			// DebuggerMenuItem
 			// 
 			this.DebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug;
@@ -3570,13 +3578,6 @@
 			this.timerMouseIdle.Interval = 2000;
 			this.timerMouseIdle.Tick += new System.EventHandler(this.timerMouseIdle_Tick);
 			// 
-			// CodeDataLoggerMenuItem
-			// 
-			this.CodeDataLoggerMenuItem.Name = "CodeDataLoggerMenuItem";
-			this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(162, 22);
-			this.CodeDataLoggerMenuItem.Text = "Code-Data Logger";
-			this.CodeDataLoggerMenuItem.Click += new System.EventHandler(this.CodeDataLoggerMenuItem_Click);
-			// 
 			// MainForm
 			// 
 			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
diff --git a/BizHawk.Client.EmuHawk/Properties/Resources.Designer.cs b/BizHawk.Client.EmuHawk/Properties/Resources.Designer.cs
index 414d931392..ce125c1389 100644
--- a/BizHawk.Client.EmuHawk/Properties/Resources.Designer.cs
+++ b/BizHawk.Client.EmuHawk/Properties/Resources.Designer.cs
@@ -290,6 +290,16 @@ namespace BizHawk.Client.EmuHawk.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap cdlogger {
+            get {
+                object obj = ResourceManager.GetObject("cdlogger", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
diff --git a/BizHawk.Client.EmuHawk/Properties/Resources.resx b/BizHawk.Client.EmuHawk/Properties/Resources.resx
index 98ac8ea1e9..98a5f2cd98 100644
--- a/BizHawk.Client.EmuHawk/Properties/Resources.resx
+++ b/BizHawk.Client.EmuHawk/Properties/Resources.resx
@@ -127,14 +127,14 @@
   <data name="ts_v_piano_13" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_13.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_h_piano_00_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_h_piano_00_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="AudioHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\AudioHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="Scan" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\Scan.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_v_piano_02_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_v_piano_02_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Square" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\Square.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="A78Joystick" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\ControllerImages\A78Joystick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -157,8 +157,8 @@
   <data name="FastForward" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\FastForward.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\Close.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ts_h_piano_11" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_h_piano_11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="MoveDown" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\MoveDown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -166,8 +166,8 @@
   <data name="ToolBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\ToolBox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="FindHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\FindHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="NES_Controller" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\ControllerImages\NES_Controller.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="SNES_Controller" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\ControllerImages\SNES_Controller.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -232,14 +232,14 @@
   <data name="Triangle" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\Triangle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="NESControllerIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\NESControllerIcon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="MoveLeft" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\MoveLeft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_h_piano_11" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_h_piano_11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Erase" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\Erase.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_v_piano_11_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_v_piano_11_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ts_v_piano_17_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_v_piano_17_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_h_piano_01" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -253,8 +253,8 @@
   <data name="ts_h_piano_15_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_15_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_v_piano_07_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_v_piano_07_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="restart" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\restart.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="YellowDown" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\YellowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -274,9 +274,6 @@
   <data name="ts_v_piano_18" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_18.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Square" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\Square.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="ts_v_arrow_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_arrow_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -313,8 +310,8 @@
   <data name="ts_v_piano_18_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_18_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_v_piano_15_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_v_piano_15_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\Stop.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -337,12 +334,24 @@
   <data name="BlueDown" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\BlueDown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="ts_v_piano_11_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_v_piano_11_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="cheat" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\cheat.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Previous" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\Previous.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="ts_v_piano_07_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_v_piano_07_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_v_piano_00_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_00_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="icon_marker" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\icon_marker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="reboot" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\reboot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -355,12 +364,15 @@
   <data name="ts_h_arrow_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_arrow_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="TurboFastForward" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\TurboFastForward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ts_h_piano_17_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_h_piano_17_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="GenesisControllerIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\GenesisControllerIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="icon_anchor_lag" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\icon_anchor_lag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="GameController" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\GameController.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -436,6 +448,9 @@
   <data name="ts_h_piano_04_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_04_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="TurboFastForward" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\TurboFastForward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="whiteTriLeft" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\whiteTriLeft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -490,9 +505,6 @@
   <data name="ts_h_piano_00_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_00_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_v_piano_17_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_v_piano_17_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="ts_h_piano_06_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_06_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -523,6 +535,9 @@
   <data name="ts_h_piano_07" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_07.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="gambatte" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\gambatte.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_v_piano_01_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_01_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -550,6 +565,9 @@
   <data name="ts_v_piano_15_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_15_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="ts_v_piano_02_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_v_piano_02_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_v_piano_09_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_09_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -589,9 +607,6 @@
   <data name="OpenFile" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\OpenFile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_h_piano_17_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_h_piano_17_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="ts_h_piano_19_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_19_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -625,6 +640,12 @@
   <data name="ts_h_piano_06_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_06_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="ts_h_piano_00_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_h_piano_00_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\Close.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_h_piano_17" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_17.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -634,11 +655,8 @@
   <data name="TAStudio" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\TAStudio.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="ts_h_piano_08" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\ts_h_piano_08.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="LightOff" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\LightOff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="bsnes" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\bsnes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_v_piano_16_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_16_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -673,9 +691,6 @@
   <data name="ts_v_piano_01" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="MoveLeft" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\MoveLeft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="ts_v_piano_11_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_11_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -715,20 +730,20 @@
   <data name="ts_h_piano_01_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_01_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="LightOn" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\LightOn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="QuickNes" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\QuickNes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Erase" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\Erase.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="ts_h_piano_07_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_07_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_h_piano_14" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="gambatte" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\gambatte.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ts_v_piano_15_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_v_piano_15_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_h_piano_04" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_04.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -766,8 +781,8 @@
   <data name="Both" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\Both.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="LightOn" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\LightOn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ts_h_piano_08" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\ts_h_piano_08.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="Duplicate" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\Duplicate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -796,9 +811,6 @@
   <data name="ts_h_piano_18_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_18_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="AudioHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\AudioHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="TI83Calculator" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\ControllerImages\TI83Calculator.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -826,9 +838,6 @@
   <data name="ts_h_piano_09_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_09_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="bsnes" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\bsnes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="SaturnController" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\controllerimages\saturncontroller.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -874,6 +883,9 @@
   <data name="SaveConfig" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\SaveConfig.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="LightOff" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\LightOff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_h_piano_03_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_03_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -889,6 +901,9 @@
   <data name="pcb" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\pcb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="kitchensink" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\kitchensink.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_h_piano_18_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_18_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -916,9 +931,6 @@
   <data name="ts_v_piano_02" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\Stop.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="pcejin1" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\pcejin1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -976,11 +988,8 @@
   <data name="ts_h_piano_10_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_10_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="NES_Controller" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\ControllerImages\NES_Controller.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="cheat" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\cheat.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="NESControllerIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\NESControllerIcon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_h_piano_15_green_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_15_green_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -1003,8 +1012,8 @@
   <data name="ts_h_piano_06_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_06_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="restart" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\restart.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="icon_anchor" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\tastudio\icon_anchor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ts_h_piano_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_h_piano_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -1461,6 +1470,9 @@
   <data name="NewFile" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\NewFile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="FindHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\FindHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ts_v_piano_00" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\tastudio\ts_v_piano_00.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -1497,16 +1509,7 @@
   <data name="whiteTriUp" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\images\whiteTriUp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="kitchensink" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\kitchensink.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="icon_anchor_lag" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\icon_anchor_lag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="icon_marker" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\icon_marker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="icon_anchor" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\images\tastudio\icon_anchor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="cdlogger" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\images\cdlogger.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>
\ No newline at end of file
diff --git a/BizHawk.Client.EmuHawk/images/cdlogger.ico b/BizHawk.Client.EmuHawk/images/cdlogger.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a401260746948b465edef02844e8fa909a306626
GIT binary patch
literal 894
zcmcJOy$%6U5QT@Okcez0bVNfU5;es>g2zyJ1O=7GTi`wPO0^eIQK<RWNhUY3Kb19i
za_^k)Oy=%}S%qI58@Xf4$gFK<Ll!0LvC?|_Bxu=Bb-F4IcS0t|dv|{$vp-y4nSq2w
zut>RNnT#F;#>+e+ki?+UnH(?H@+u1!?-|LNkO%k^ui4Z;Z+=}w^Ei)%&^0}4et(my
zQxr@V5FW!<s^)SDc2dXilc`mhVepEi?r`1)#x1Q`MC6gwQ3t2GEbRNc2FC)6Gg#!s
oQouLIHB<rQ(*EJ7@IK6$OKd8k`nyl{lzVSk$lt}E>-{wQ033w|X#fBK

literal 0
HcmV?d00001

diff --git a/BizHawk.Client.EmuHawk/tools/CDL.Designer.cs b/BizHawk.Client.EmuHawk/tools/CDL.Designer.cs
index 1e2947c471..c58e874a2e 100644
--- a/BizHawk.Client.EmuHawk/tools/CDL.Designer.cs
+++ b/BizHawk.Client.EmuHawk/tools/CDL.Designer.cs
@@ -29,7 +29,6 @@
 		private void InitializeComponent()
 		{
 			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CDL));
-			this.LoggingActiveCheckbox = new System.Windows.Forms.CheckBox();
 			this.menuStrip1 = new MenuStripEx();
 			this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem();
 			this.NewMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -44,22 +43,31 @@
 			this.DisassembleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 			this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
 			this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-			this.CdlTextbox = new System.Windows.Forms.TextBox();
+			this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+			this.tsbLoggingActive = new System.Windows.Forms.ToolStripButton();
+			this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
+			this.tsbViewUpdate = new System.Windows.Forms.ToolStripButton();
+			this.tsbViewStyle = new System.Windows.Forms.ToolStripComboBox();
+			this.lvCDL = new BizHawk.Client.EmuHawk.VirtualListView();
+			this.colAddress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colDomain = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colPct = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colMapped = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colSize = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag01 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag02 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag04 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag08 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag10 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag20 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag40 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.colFlag80 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+			this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
+			this.tsbExportText = new System.Windows.Forms.ToolStripButton();
 			this.menuStrip1.SuspendLayout();
+			this.toolStrip1.SuspendLayout();
 			this.SuspendLayout();
 			// 
-			// LoggingActiveCheckbox
-			// 
-			this.LoggingActiveCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-			this.LoggingActiveCheckbox.AutoSize = true;
-			this.LoggingActiveCheckbox.Location = new System.Drawing.Point(12, 240);
-			this.LoggingActiveCheckbox.Name = "LoggingActiveCheckbox";
-			this.LoggingActiveCheckbox.Size = new System.Drawing.Size(107, 17);
-			this.LoggingActiveCheckbox.TabIndex = 1;
-			this.LoggingActiveCheckbox.Text = "Logging is Active";
-			this.LoggingActiveCheckbox.UseVisualStyleBackColor = true;
-			this.LoggingActiveCheckbox.CheckedChanged += new System.EventHandler(this.LoggingActiveCheckbox_CheckedChanged);
-			// 
 			// menuStrip1
 			// 
 			this.menuStrip1.ClickThrough = true;
@@ -67,7 +75,7 @@
             this.FileSubMenu});
 			this.menuStrip1.Location = new System.Drawing.Point(0, 0);
 			this.menuStrip1.Name = "menuStrip1";
-			this.menuStrip1.Size = new System.Drawing.Size(463, 24);
+			this.menuStrip1.Size = new System.Drawing.Size(992, 24);
 			this.menuStrip1.TabIndex = 2;
 			this.menuStrip1.Text = "menuStrip1";
 			// 
@@ -181,26 +189,172 @@
 			this.ExitMenuItem.Text = "&Close";
 			this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click);
 			// 
-			// CdlTextbox
+			// toolStrip1
 			// 
-			this.CdlTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-			this.CdlTextbox.Location = new System.Drawing.Point(0, 27);
-			this.CdlTextbox.Multiline = true;
-			this.CdlTextbox.Name = "CdlTextbox";
-			this.CdlTextbox.ReadOnly = true;
-			this.CdlTextbox.Size = new System.Drawing.Size(463, 207);
-			this.CdlTextbox.TabIndex = 3;
+			this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.tsbLoggingActive,
+            this.toolStripSeparator3,
+            this.tsbViewUpdate,
+            this.tsbViewStyle,
+            this.toolStripSeparator4,
+            this.tsbExportText});
+			this.toolStrip1.Location = new System.Drawing.Point(0, 24);
+			this.toolStrip1.Name = "toolStrip1";
+			this.toolStrip1.Size = new System.Drawing.Size(992, 25);
+			this.toolStrip1.TabIndex = 8;
+			this.toolStrip1.Text = "toolStrip1";
+			// 
+			// tsbLoggingActive
+			// 
+			this.tsbLoggingActive.CheckOnClick = true;
+			this.tsbLoggingActive.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+			this.tsbLoggingActive.Image = ((System.Drawing.Image)(resources.GetObject("tsbLoggingActive.Image")));
+			this.tsbLoggingActive.ImageTransparentColor = System.Drawing.Color.Magenta;
+			this.tsbLoggingActive.Name = "tsbLoggingActive";
+			this.tsbLoggingActive.Size = new System.Drawing.Size(41, 22);
+			this.tsbLoggingActive.Text = "Active";
+			this.tsbLoggingActive.CheckedChanged += new System.EventHandler(this.tsbLoggingActive_CheckedChanged);
+			// 
+			// toolStripSeparator3
+			// 
+			this.toolStripSeparator3.Name = "toolStripSeparator3";
+			this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
+			// 
+			// tsbViewUpdate
+			// 
+			this.tsbViewUpdate.Checked = true;
+			this.tsbViewUpdate.CheckOnClick = true;
+			this.tsbViewUpdate.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.tsbViewUpdate.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+			this.tsbViewUpdate.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewUpdate.Image")));
+			this.tsbViewUpdate.ImageTransparentColor = System.Drawing.Color.Magenta;
+			this.tsbViewUpdate.Name = "tsbViewUpdate";
+			this.tsbViewUpdate.Size = new System.Drawing.Size(46, 22);
+			this.tsbViewUpdate.Text = "Update";
+			// 
+			// tsbViewStyle
+			// 
+			this.tsbViewStyle.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.tsbViewStyle.Items.AddRange(new object[] {
+            "Show %",
+            "Show Bytes",
+            "Show KBytes"});
+			this.tsbViewStyle.Name = "tsbViewStyle";
+			this.tsbViewStyle.Size = new System.Drawing.Size(121, 25);
+			this.tsbViewStyle.SelectedIndexChanged += new System.EventHandler(this.tsbViewStyle_SelectedIndexChanged);
+			// 
+			// lvCDL
+			// 
+			this.lvCDL.BlazingFast = false;
+			this.lvCDL.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.colAddress,
+            this.colDomain,
+            this.colPct,
+            this.colMapped,
+            this.colSize,
+            this.colFlag01,
+            this.colFlag02,
+            this.colFlag04,
+            this.colFlag08,
+            this.colFlag10,
+            this.colFlag20,
+            this.colFlag40,
+            this.colFlag80});
+			this.lvCDL.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.lvCDL.FullRowSelect = true;
+			this.lvCDL.GridLines = true;
+			this.lvCDL.ItemCount = 0;
+			this.lvCDL.Location = new System.Drawing.Point(0, 49);
+			this.lvCDL.Name = "lvCDL";
+			this.lvCDL.SelectAllInProgress = false;
+			this.lvCDL.selectedItem = -1;
+			this.lvCDL.Size = new System.Drawing.Size(992, 323);
+			this.lvCDL.TabIndex = 9;
+			this.lvCDL.UseCompatibleStateImageBehavior = false;
+			this.lvCDL.UseCustomBackground = true;
+			this.lvCDL.View = System.Windows.Forms.View.Details;
+			this.lvCDL.VirtualMode = true;
+			this.lvCDL.QueryItemText += new BizHawk.Client.EmuHawk.QueryItemTextHandler(this.lvCDL_QueryItemText);
+			// 
+			// colAddress
+			// 
+			this.colAddress.Text = "CDL File @";
+			this.colAddress.Width = 107;
+			// 
+			// colDomain
+			// 
+			this.colDomain.Text = "Domain";
+			this.colDomain.Width = 126;
+			// 
+			// colPct
+			// 
+			this.colPct.Text = "%";
+			this.colPct.Width = 58;
+			// 
+			// colMapped
+			// 
+			this.colMapped.Text = "Mapped";
+			this.colMapped.Width = 64;
+			// 
+			// colSize
+			// 
+			this.colSize.Text = "Size";
+			this.colSize.Width = 102;
+			// 
+			// colFlag01
+			// 
+			this.colFlag01.Text = "0x01";
+			// 
+			// colFlag02
+			// 
+			this.colFlag02.Text = "0x02";
+			// 
+			// colFlag04
+			// 
+			this.colFlag04.Text = "0x04";
+			// 
+			// colFlag08
+			// 
+			this.colFlag08.Text = "0x08";
+			// 
+			// colFlag10
+			// 
+			this.colFlag10.Text = "0x10";
+			// 
+			// colFlag20
+			// 
+			this.colFlag20.Text = "0x20";
+			// 
+			// colFlag40
+			// 
+			this.colFlag40.Text = "0x40";
+			// 
+			// colFlag80
+			// 
+			this.colFlag80.Text = "0x80";
+			// 
+			// toolStripSeparator4
+			// 
+			this.toolStripSeparator4.Name = "toolStripSeparator4";
+			this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25);
+			// 
+			// tsbExportText
+			// 
+			this.tsbExportText.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig;
+			this.tsbExportText.ImageTransparentColor = System.Drawing.Color.Magenta;
+			this.tsbExportText.Name = "tsbExportText";
+			this.tsbExportText.Size = new System.Drawing.Size(87, 22);
+			this.tsbExportText.Text = "To Clipboard";
+			this.tsbExportText.Click += new System.EventHandler(this.tsbExportText_Click);
 			// 
 			// CDL
 			// 
 			this.AllowDrop = true;
 			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
 			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-			this.ClientSize = new System.Drawing.Size(463, 269);
-			this.Controls.Add(this.CdlTextbox);
-			this.Controls.Add(this.LoggingActiveCheckbox);
+			this.ClientSize = new System.Drawing.Size(992, 372);
+			this.Controls.Add(this.lvCDL);
+			this.Controls.Add(this.toolStrip1);
 			this.Controls.Add(this.menuStrip1);
 			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
 			this.MainMenuStrip = this.menuStrip1;
@@ -213,6 +367,8 @@
 			this.DragEnter += new System.Windows.Forms.DragEventHandler(this.PCECDL_DragEnter);
 			this.menuStrip1.ResumeLayout(false);
 			this.menuStrip1.PerformLayout();
+			this.toolStrip1.ResumeLayout(false);
+			this.toolStrip1.PerformLayout();
 			this.ResumeLayout(false);
 			this.PerformLayout();
 
@@ -220,7 +376,6 @@
 
 		#endregion
 
-		private System.Windows.Forms.CheckBox LoggingActiveCheckbox;
 		private MenuStripEx menuStrip1;
 		private System.Windows.Forms.ToolStripMenuItem FileSubMenu;
 		private System.Windows.Forms.ToolStripMenuItem ClearMenuItem;
@@ -228,7 +383,6 @@
 		private System.Windows.Forms.ToolStripMenuItem SaveAsMenuItem;
 		private System.Windows.Forms.ToolStripMenuItem AppendMenuItem;
 		private System.Windows.Forms.ToolStripMenuItem NewMenuItem;
-		private System.Windows.Forms.TextBox CdlTextbox;
 		private System.Windows.Forms.ToolStripMenuItem DisassembleMenuItem;
 		private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
 		private System.Windows.Forms.ToolStripMenuItem ExitMenuItem;
@@ -236,6 +390,27 @@
 		private System.Windows.Forms.ToolStripMenuItem RecentSubMenu;
 		private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
 		private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem;
+		private System.Windows.Forms.ToolStrip toolStrip1;
+		private System.Windows.Forms.ToolStripButton tsbLoggingActive;
+		private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
+		private System.Windows.Forms.ToolStripButton tsbViewUpdate;
+		private System.Windows.Forms.ToolStripComboBox tsbViewStyle;
+		private VirtualListView lvCDL;
+		private System.Windows.Forms.ColumnHeader colAddress;
+		private System.Windows.Forms.ColumnHeader colDomain;
+		private System.Windows.Forms.ColumnHeader colPct;
+		private System.Windows.Forms.ColumnHeader colMapped;
+		private System.Windows.Forms.ColumnHeader colSize;
+		private System.Windows.Forms.ColumnHeader colFlag01;
+		private System.Windows.Forms.ColumnHeader colFlag02;
+		private System.Windows.Forms.ColumnHeader colFlag04;
+		private System.Windows.Forms.ColumnHeader colFlag08;
+		private System.Windows.Forms.ColumnHeader colFlag10;
+		private System.Windows.Forms.ColumnHeader colFlag20;
+		private System.Windows.Forms.ColumnHeader colFlag40;
+		private System.Windows.Forms.ColumnHeader colFlag80;
+		private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
+		private System.Windows.Forms.ToolStripButton tsbExportText;
 
 	}
 }
\ No newline at end of file
diff --git a/BizHawk.Client.EmuHawk/tools/CDL.cs b/BizHawk.Client.EmuHawk/tools/CDL.cs
index c205d419f4..ff62a42e55 100644
--- a/BizHawk.Client.EmuHawk/tools/CDL.cs
+++ b/BizHawk.Client.EmuHawk/tools/CDL.cs
@@ -16,6 +16,14 @@ using BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
 using BizHawk.Client.Common;
 using BizHawk.Client.EmuHawk.ToolExtensions;
 
+//TODO - select which memorydomains go out to the CDL file. will this cause a problem when re-importing it? 
+  //perhaps missing domains shouldnt fail a check
+//OR - just add a contextmenu option to the listview item that selects it for export.
+//TODO - add a contextmenu option which warps to the hexeditor with the provided domain selected for visualizing on the hex editor.
+//TODO - consider setting colors for columns in CDL
+//TODO - option to print domain name in caption instead of 0x01 etc.
+//TODO - context menu should have copy option too
+
 namespace BizHawk.Client.EmuHawk
 {
 	public partial class CDL : Form, IToolFormAutoConfig
@@ -33,28 +41,41 @@ namespace BizHawk.Client.EmuHawk
 				if (_recent_fld.AutoLoad)
 				{
 					LoadFile(_recent.MostRecent);
-					_currentFileName = _recent.MostRecent;
+					SetCurrentFilename(_recent.MostRecent);
 				}
 			}
 		}
 
+		void SetCurrentFilename(string fname)
+		{
+			_currentFilename = fname;
+			if (_currentFilename == null)
+				Text = "Code Data Logger";
+			else Text = string.Format("Code Data Logger - {0}", fname);
+		}
+
 		[RequiredService]
 		private IMemoryDomains MemoryDomains { get; set; }
 
 		[RequiredService]
 		private ICodeDataLogger CodeDataLogger { get; set; }
 
-		private string _currentFileName = string.Empty;
+		private string _currentFilename = null;
 		private CodeDataLog _cdl;
 
 		public CDL()
 		{
+			SetStyle(ControlStyles.AllPaintingInWmPaint, true);
+			SetStyle(ControlStyles.UserPaint, true);
+			SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
 			InitializeComponent();
+
+			tsbViewStyle.SelectedIndex = 0;
 		}
 
 		public void UpdateValues()
 		{
-			UpdateDisplay();
+			UpdateDisplay(false);
 		}
 
 		public void FastUpdate()
@@ -67,52 +88,104 @@ namespace BizHawk.Client.EmuHawk
 			//don't try to recover the current CDL!
 			//even though it seems like it might be nice, it might get mixed up between games. even if we use CheckCDL. Switching games with the same memory map will be bad.
 			_cdl = null;
-			_currentFileName = null;
-			LoggingActiveCheckbox.Checked = false;
-			UpdateDisplay();
+			SetCurrentFilename(null);
+			SetLoggingActiveCheck(false);
+			UpdateDisplay(true);
 		}
 
-		private void UpdateDisplay()
+		void SetLoggingActiveCheck(bool value)
 		{
+			tsbLoggingActive.Checked = value;
+		}
+
+		string[][] listContents = new string[0][];
+
+		private void UpdateDisplay(bool force)
+		{
+			if (!tsbViewUpdate.Checked && !force)
+				return;
+
+
 			if (_cdl == null)
 			{
-				CdlTextbox.Text = "No CDL loaded.";
+				lvCDL.BeginUpdate();
+				lvCDL.Items.Clear();
+				lvCDL.EndUpdate();
 				return;
 			}
 
-			StringWriter sw = new StringWriter();
-			sw.WriteLine("CDL contains the following domains:");
+			lvCDL.BeginUpdate();
+
+			listContents = new string[_cdl.Count][];
+
+			int idx = 0;
 			foreach (var kvp in _cdl)
 			{
+				int[] totals = new int[8];
 				int total = 0;
 				unsafe
 				{
+					int* map = stackalloc int[256];
+					for (int i = 0; i < 256; i++)
+						map[i] = 0;
+
 					fixed (byte* data = kvp.Value)
 					{
 						byte* src = data;
 						byte* end = data + kvp.Value.Length;
 						while (src < end)
 						{
-							if (*src++ != 0)
-							{
-								total++;
-							}
+							byte s = *src++;
+							map[s]++;
 						}
 					}
+
+					for (int i = 0; i < 256; i++)
+					{
+						if(i!=0) total += map[i];
+						if ((i & 0x01) != 0) totals[0] += map[i];
+						if ((i & 0x02) != 0) totals[1] += map[i];
+						if ((i & 0x04) != 0) totals[2] += map[i];
+						if ((i & 0x08) != 0) totals[3] += map[i];
+						if ((i & 0x10) != 0) totals[4] += map[i];
+						if ((i & 0x20) != 0) totals[5] += map[i];
+						if ((i & 0x40) != 0) totals[6] += map[i];
+						if ((i & 0x80) != 0) totals[7] += map[i];
+					}
 				}
 
-				sw.WriteLine("Domain {0} Size {1} Mapped {2}% ({3}/{4} bytes)", kvp.Key, kvp.Value.Length, total / (float)kvp.Value.Length * 100f, total, kvp.Value.Length);
-			}
-			
-			sw.WriteLine();
-			
-			var bm = _cdl.GetBlockMap();
-			foreach (var kvp in bm)
-			{
-				sw.WriteLine("{0:X8}: {1}", kvp.Value, kvp.Key);
-			}
+				var bm = _cdl.GetBlockMap();
+				long addr = bm[kvp.Key];
 
-			CdlTextbox.Text = sw.ToString();
+				var lvi = listContents[idx++] = new string[13];
+				lvi[0] = string.Format("{0:X8}", addr);
+				lvi[1] = kvp.Key;
+				lvi[2] = string.Format("{0:0.00}%", total / (float)kvp.Value.Length * 100f);
+				if (tsbViewStyle.SelectedIndex == 2)
+					lvi[3] = string.Format("{0:0.00}", total / 1024.0f);
+				else
+					lvi[3] = string.Format("{0}", total);
+				if (tsbViewStyle.SelectedIndex == 2)
+				{
+					int n = (int)(kvp.Value.Length / 1024.0f);
+					float ncheck = kvp.Value.Length / 1024.0f;
+					lvi[4] = string.Format("of {0}{1} KBytes", n == ncheck ? "" : "~", n);
+				}
+				else
+					lvi[4] = string.Format("of {0} Bytes", kvp.Value.Length);
+				for (int i = 0; i < 8; i++)
+				{
+				  if (tsbViewStyle.SelectedIndex == 0)
+				    lvi[5 + i] = string.Format("{0:0.00}%", totals[i] / (float)kvp.Value.Length * 100f);
+				  if (tsbViewStyle.SelectedIndex == 1)
+				    lvi[5 + i] = string.Format("{0}", totals[i]);
+				  if (tsbViewStyle.SelectedIndex == 2)
+				    lvi[5 + i] = string.Format("{0:0.00}", totals[i] / 1024.0f);
+				}
+
+			}
+			lvCDL.VirtualListSize = _cdl.Count;
+			lvCDL.EndUpdate();
 		}
 
 		public bool AskSaveChanges()
@@ -144,22 +217,18 @@ namespace BizHawk.Client.EmuHawk
 				//ok, it's all good:
 				_cdl = newCDL;
 				CodeDataLogger.SetCDL(null);
-				if (LoggingActiveCheckbox.Checked)
+				if (tsbLoggingActive.Checked)
 					CodeDataLogger.SetCDL(_cdl);
 
-				_currentFileName = path;
+				SetCurrentFilename(path);
 			}
 
-			UpdateDisplay();
+			UpdateDisplay(true);
 		}
 
-		#region Events
-
-		#region File
-
 		private void FileSubMenu_DropDownOpened(object sender, EventArgs e)
 		{
-			SaveMenuItem.Enabled = !string.IsNullOrWhiteSpace(_currentFileName);
+			SaveMenuItem.Enabled = _currentFilename != null;
 			SaveAsMenuItem.Enabled =
 				AppendMenuItem.Enabled =
 				ClearMenuItem.Enabled =
@@ -178,13 +247,13 @@ namespace BizHawk.Client.EmuHawk
 			_cdl = new CodeDataLog();
 			CodeDataLogger.NewCDL(_cdl);
 
-			if (LoggingActiveCheckbox.Checked)
+			if (tsbLoggingActive.Checked)
 				CodeDataLogger.SetCDL(_cdl);
 			else CodeDataLogger.SetCDL(null);
 
-			_currentFileName = null;
+			SetCurrentFilename(null);
 
-			UpdateDisplay();
+			UpdateDisplay(true);
 		}
 
 		private void NewMenuItem_Click(object sender, EventArgs e)
@@ -203,7 +272,7 @@ namespace BizHawk.Client.EmuHawk
 		private void OpenMenuItem_Click(object sender, EventArgs e)
 		{
 			var file = ToolHelpers.OpenFileDialog(
-				_currentFileName,
+				_currentFilename,
 				PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
 				"Code Data Logger Files",
 				"cdl");
@@ -224,13 +293,13 @@ namespace BizHawk.Client.EmuHawk
 
 		private void SaveMenuItem_Click(object sender, EventArgs e)
 		{
-			if (string.IsNullOrWhiteSpace(_currentFileName))
+			if (string.IsNullOrWhiteSpace(_currentFilename))
 			{
 				RunSaveAs();
 				return;
 			}
 			
-			using (var fs = new FileStream(_currentFileName, FileMode.Create, FileAccess.Write))
+			using (var fs = new FileStream(_currentFilename, FileMode.Create, FileAccess.Write))
 			{
 				_cdl.Save(fs);
 			}
@@ -245,7 +314,7 @@ namespace BizHawk.Client.EmuHawk
 			else
 			{
 				var file = ToolHelpers.SaveFileDialog(
-					_currentFileName,
+					_currentFilename,
 					PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
 					"Code Data Logger Files",
 					"cdl");
@@ -256,7 +325,7 @@ namespace BizHawk.Client.EmuHawk
 					{
 						_cdl.Save(fs);
 						_recent.Add(file.FullName);
-						_currentFileName = file.FullName;
+						SetCurrentFilename(file.FullName);
 					}
 				}
 			}
@@ -276,7 +345,7 @@ namespace BizHawk.Client.EmuHawk
 			else
 			{
 				var file = ToolHelpers.OpenFileDialog(
-					_currentFileName,
+					_currentFilename,
 					PathManager.MakeAbsolutePath(Global.Config.PathEntries.LogPathFragment, null),
 					"Code Data Logger Files",
 					"cdl");
@@ -293,7 +362,7 @@ namespace BizHawk.Client.EmuHawk
 							return;
 						}
 						_cdl.LogicalOrFrom(newCDL);
-						UpdateDisplay();
+						UpdateDisplay(true);
 					}
 				}
 			}
@@ -311,7 +380,7 @@ namespace BizHawk.Client.EmuHawk
 				if (result == DialogResult.Yes)
 				{
 					_cdl.ClearData();
-					UpdateDisplay();
+					UpdateDisplay(true);
 				}
 			}
 		}
@@ -347,28 +416,10 @@ namespace BizHawk.Client.EmuHawk
 				CodeDataLogger.SetCDL(null);
 		}
 
-		#endregion
-
-		#region Dialog Events
-
 		private void PCECDL_Load(object sender, EventArgs e)
 		{
 		}
 
-		private void LoggingActiveCheckbox_CheckedChanged(object sender, EventArgs e)
-		{
-			if (LoggingActiveCheckbox.Checked && _cdl == null)
-			{
-				//implicitly create a new file
-				NewFileLogic();
-			}
-			
-			if (_cdl != null && LoggingActiveCheckbox.Checked)
-				CodeDataLogger.SetCDL(_cdl);
-			else
-				CodeDataLogger.SetCDL(null);
-		}
-
 		private void PCECDL_DragEnter(object sender, DragEventArgs e)
 		{
 			e.Effect = e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None;
@@ -383,8 +434,42 @@ namespace BizHawk.Client.EmuHawk
 			}
 		}
 
-		#endregion
+	
 
-		#endregion
+		private void tsbViewStyle_SelectedIndexChanged(object sender, EventArgs e)
+		{
+			UpdateDisplay(true);
+		}
+
+		private void tsbLoggingActive_CheckedChanged(object sender, EventArgs e)
+		{
+			if (tsbLoggingActive.Checked && _cdl == null)
+			{
+				//implicitly create a new file
+				NewFileLogic();
+			}
+
+			if (_cdl != null && tsbLoggingActive.Checked)
+				CodeDataLogger.SetCDL(_cdl);
+			else
+				CodeDataLogger.SetCDL(null);
+		}
+
+		private void lvCDL_QueryItemText(int item, int subItem, out string text)
+		{
+			text = listContents[item][subItem];
+		}
+
+		private void tsbExportText_Click(object sender, EventArgs e)
+		{
+			StringWriter sw = new StringWriter();
+			foreach(var line in listContents)
+			{
+				foreach (var entry in line)
+					sw.Write("{0} |", entry);
+				sw.WriteLine();
+			}
+			Clipboard.SetText(sw.ToString());
+		}
 	}
 }
diff --git a/BizHawk.Client.EmuHawk/tools/CDL.resx b/BizHawk.Client.EmuHawk/tools/CDL.resx
index 9d64fd2552..acb5948fc4 100644
--- a/BizHawk.Client.EmuHawk/tools/CDL.resx
+++ b/BizHawk.Client.EmuHawk/tools/CDL.resx
@@ -120,81 +120,57 @@
   <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
+  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>126, 17</value>
+  </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="tsbLoggingActive.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+        YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+        0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+        bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+        VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+        c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+        Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+        mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+        kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+        TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="tsbViewUpdate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+        YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+        0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+        bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+        VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+        c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+        Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+        mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+        kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+        TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        AAABAAEAICAAAAAAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAABILAAASCwAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qq
-        qv+qqqr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAMjIy/6qqqv+qqqr/qqqq/6qq
-        qv+qqqr/qqqq/6qqqv+qqqr///////////+enp7/np6e/56env+enp7/np6e/56env+enp7/np6e/56e
-        nv+enp7///////////+qqqr/qqqq/6qqqv+qqqr/qqqq/87Ozv/Ozs7/qqqq/zIyMv8yMjL/////////
-        /////////////////////////////////////////////2JiYv9iYmL/2tra/9ra2v/a2tr/2tra/9ra
-        2v/a2tr/YmJi/2JiYv//////////////////////////////////////////////////////MjIy/zIy
-        Mv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP/a2tr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8yMjL/MjIy/5KSkv+SkpL/////////////////kpKS/5KSkv+SkpL/kpKS/5KSkv+SkpL/kpKS/5KS
-        kv+SkpL/bm5u/25ubv+SkpL/kpKS/wCFAf8AhQH/kpKS/5KSkv+SkpL/kpKS/5KSkv+SkpL/kpKS/wAA
-        AP8AAAD/kpKS/zIyMv8yMjL/kpKS/5KSkv+SkpL/kpKS/5KSkv+SkpL/kpKS/5KSkv+SkpL/kpKS/5KS
-        kv+SkpL/kpKS/5KSkv9ubm7/bm5u/+bm5v+SkpL/kpKS/5KSkv+SkpL/kpKS/+bm5v/m5ub/kpKS/5KS
-        kv+SkpL/kpKS/5KSkv/m5ub/MjIy/zIyMv/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm
-        5v/m5ub/5ubm/+bm5v/m5ub/5ubm/25ubv9ubm7//////87Ozv/m5ub/5ubm/3h5ef94eXn/////////
-        ///m5ub/5ubm/+bm5v/m5ub/5ubm//////8yMjL/MjIy/2JiYv8lJSX///////////+enp7/np6e/56e
-        nv+enp7/np6e/56env///////////8DAwP/AwMD/bm5u/25ubv//////zs7O////////////eHl5////
-        ////////9vr+///////m5ub///////////+qqqr//////zIyMv8yMjL//////2JiYv//////np6e/xoa
-        Gv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/56env////////////////9ubm7/bm5u///////Ozs7/////////
-        //94eXn//////////////////////+bm5v///////////6qqqv//////MjIy/zIyMv+enp7/pKai/25u
-        bv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/25ubv+enp7/np6e/25ubv9ubm7//////87O
-        zv///////////3h5ef//////////////////////5ubm////////////qqqq//////8yMjL/MjIy////
-        //+enp7///////////9iYmL/Pj4+/xoaGv8lJSX/Pj4+/2JiYv///////////25ubv//////bm5u/25u
-        bv//////zs7O////////////JSUl/yUlJf8lJSX/JSUl/yUlJf/m5ub///////////+qqqr//////zIy
-        Mv8yMjL//////56env//////////////////////////////////////////////////////bm5u////
-        //9ubm7/bm5u///////Ozs7///////////+SkpL/kpKS/5KSkv+SkpL/kpKS/+bm5v///////////6qq
-        qv//////MjIy/zIyMv//////np6e/////////////////8DAwP/AwMD//////8DAwP//////////////
-        //9ubm7//////25ubv9ubm7//////87Ozv//////zs7O/////////////////5GO/v///////////6qq
-        qv//////qqqq//////8yMjL/AAAA//////+enp7/////////////////////////////////////////
-        /////////////25ubv//////bm5u/5KSkv//////zs7O///////Ozs7//////5GO/v+Rjv7//////5GO
-        /v//////qqqq//////+qqqr/kpKS/wAAAP8AAAD///////////+enp7/////////////////////////
-        //////////////////9ubm7///////////9ubm7/kpKS///////Ozs7////////////Ozs7/////////
-        /////////////6qqqv///////////6qqqv//////AAAA/wAAAP////////////////+enp7/////////
-        ////////////////////////bm5u/////////////////25ubv+SkpL//////87Ozv//////////////
-        ///Ozs7/zs7O/6qqqv+qqqr/////////////////qqqq//////8AAAD/AAAA////////////////////
-        //+enp7/np6e/56env+enp7/np6e/56env//////////////////////bm5u/5KSkv//////zs7O/87O
-        zv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/87Ozv/Ozs7//////wAAAP8AAAD/////////
-        //////////////////////////////////////////////////////////////////9ubm7/kpKS////
-        ////////////////////////////////////////////////////////////////////////AAAA/wAA
-        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/2JiYv+SkpL/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoa
-        Gv8+Pj7/Pj4+/z4+Pv8+Pj7/Ghoa/z4+Pv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoa
-        Gv8aGhr/VlZW/wAAAP8AAAD/YmJi/5KSkv9WVlb/VlZW/1ZWVv9WVlb/VlZW/1ZWVv9WVlb/VlZW/1ZW
-        Vv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Pj4+/1ZWVv9WVlb/VlZW/1ZWVv9WVlb/VlZW//2P
-        a/9WVlb//Y9r/xoaGv9WVlb/AAAA/wAAAP9iYmL/kpKS/1ZWVv9WVlb/VlZW/1ZWVv9WVlb/VlZW/1ZW
-        Vv9WVlb/VlZW/xoaGv9WVlb/VlZW/1ZWVv9WVlb/VlZW/1ZWVv8+Pj7/VlZW/1ZWVv9WVlb/VlZW/1ZW
-        Vv9WVlb/VlZW/1ZWVv9WVlb/Ghoa/1ZWVv8AAAD/AAAA/2JiYv+SkpL/VlZW/1ZWVv+Ghob/VlZW/4aG
-        hv+Ghob/hoaG/4aGhv9WVlb/Ghoa/1ZWVv9WVlb/VlZW/1ZWVv9WVlb/VlZW/z4+Pv9WVlb/VlZW/1ZW
-        Vv9WVlb/VlZW/1ZWVv9WVlb/VlZW/1ZWVv8aGhr/VlZW/wAAAP8AAAD/YmJi/2JiYv+SkpL/kpKS/5KS
-        kv+SkpL/kpKS/5KSkv+SkpL/kpKS/5KSkv9iYmL/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/YmJi/5KS
-        kv+SkpL/kpKS/5KSkv+SkpL/kpKS/5KSkv+SkpL/kpKS/25ubv9iYmL/AAAA/1ZWVv8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9WVlb/AAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/////////////////4AB/4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAD///////////////8=
+        AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAQAMAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAACMWwCMWwCMWwCMWwCMWwCMWwCMWwCMWwCMWwCMWwCMWwCMWwAAAAAAAAAAAACMWxApOoZ
+        jN1ApOoCMWyj0/Wj0/Wj0/Wj0/Wj0/Wj0/Wj0/Wj0/UCMWwAAAACMWxApOpApOoCMWxApOoZjN0CMWyj
+        0/UuKfAuKfCj0/XLPAPLPANApOpApOoCMWwCMWwZjN0CMWwQUHwCMWxApOoCMWxApOouKfCj0/Wj0/XL
+        PAOj0/XLPAOj0/UCMWwCMWxApOoCMWwQUHwCMWxApOoCMWyj0/UuKfCj0/Wj0/XLPAOj0/XLPAOj0/UC
+        MWwCMWxApOoCMWwQUHwCMWxApOoCMWyj0/UuKfCj0/Wj0/XLPAOj0/XLPAOj0/UCMWwCMWxApOoCMWwQ
+        UHwCMWwZjN0CMWyj0/UuKfAuKfCj0/XLPAPLPANApOpApOoCMWwCMWxApOoCMWwQUHwCMWwZjN0CMWyj
+        0/Wj0/Wj0/VApOpApOpApOpApOpApOoCMWwCMWwZjN1ApOoCMWxApOpApOoCMWyj0/Wj0/Wj0/UCMWwC
+        MWyj0/Wj0/Wj0/UCMWwAAAACMWxApOpApOoZjN0CMWxApOpApOqj0/UCMWyj0/Wj0/Wj0/Wj0/UCMWwA
+        AAAAAAAAAAACMWwCMWwCMWwCMWwCMWwCMWwCMWyj0/VApOqj0/UCMWwCMWwAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAACMWyj0/VApOqj0/UOOwMOOwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAOOwMjpQUCMWyj0/UOOwMhhwkjpQUOOwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOwMhhwkjpQUC
+        MWwOOwMjpQUhhwkOOwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLAQOOwMOOwMAAAAOOwMhhwkjpQUO
+        OwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOwMjpQUOOwMAAADAAwAAgAEAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAwAMAAP+BAAD/AAAA/wAAAP8QAAD/8QAA
 </value>
   </data>
 </root>
\ No newline at end of file