diff --git a/src/common/consts.rs b/src/common/consts.rs
index bc027e1..41800c1 100644
--- a/src/common/consts.rs
+++ b/src/common/consts.rs
@@ -542,36 +542,36 @@ impl LongDelay {
     pub fn into_string(self) -> String {
         match self {
             LongDelay::D0  => "0",
-            LongDelay::D10  => "1",
-            LongDelay::D20  => "2",
-            LongDelay::D30  => "3",
-            LongDelay::D40  => "4",
-            LongDelay::D50  => "5",
-            LongDelay::D60  => "6",
-            LongDelay::D70  => "7",
-            LongDelay::D80  => "8",
-            LongDelay::D90  => "9",
-            LongDelay::D100 => "10",
-            LongDelay::D110 => "11",
-            LongDelay::D120 => "12",
-            LongDelay::D130 => "13",
-            LongDelay::D140 => "14",
-            LongDelay::D150 => "15",
-            LongDelay::D160 => "16",
-            LongDelay::D170 => "17",
-            LongDelay::D180 => "18",
-            LongDelay::D190 => "19",
-            LongDelay::D200 => "20",
-            LongDelay::D210 => "21",
-            LongDelay::D220 => "22",
-            LongDelay::D230 => "23",
-            LongDelay::D240 => "24",
-            LongDelay::D250 => "25",
-            LongDelay::D260 => "26",
-            LongDelay::D270 => "27",
-            LongDelay::D280 => "28",
-            LongDelay::D290 => "29",
-            LongDelay::D300 => "30",
+            LongDelay::D10  => "10",
+            LongDelay::D20  => "20",
+            LongDelay::D30  => "30",
+            LongDelay::D40  => "40",
+            LongDelay::D50  => "50",
+            LongDelay::D60  => "60",
+            LongDelay::D70  => "70",
+            LongDelay::D80  => "80",
+            LongDelay::D90  => "90",
+            LongDelay::D100 => "100",
+            LongDelay::D110 => "110",
+            LongDelay::D120 => "120",
+            LongDelay::D130 => "130",
+            LongDelay::D140 => "140",
+            LongDelay::D150 => "150",
+            LongDelay::D160 => "160",
+            LongDelay::D170 => "170",
+            LongDelay::D180 => "180",
+            LongDelay::D190 => "190",
+            LongDelay::D200 => "200",
+            LongDelay::D210 => "210",
+            LongDelay::D220 => "220",
+            LongDelay::D230 => "230",
+            LongDelay::D240 => "240",
+            LongDelay::D250 => "250",
+            LongDelay::D260 => "260",
+            LongDelay::D270 => "270",
+            LongDelay::D280 => "280",
+            LongDelay::D290 => "290",
+            LongDelay::D300 => "300",
             _ => "",
         }.to_string()
     }
@@ -610,7 +610,7 @@ impl BoolFlag {
 
 
 #[repr(u32)]
-#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
 #[allow(dead_code)]
 pub enum SdiStrength {
     Normal = 0,
@@ -746,10 +746,12 @@ impl TrainingModpackMenu {
             (oos_offset = Delay::from_bits(val))
             (reaction_time = Delay::from_bits(val))
             (sdi_state = Direction::from_bits(val))
+            (sdi_strength = num::FromPrimitive::from_u32(val))
             (shield_state = num::FromPrimitive::from_u32(val))
             (shield_tilt = Direction::from_bits(val))
             (stage_hazards = OnOff::from_val(val))
             (tech_state = TechFlags::from_bits(val))
+            (save_damage = OnOff::from_val(val))
         );
     }
 }
diff --git a/src/common/menu.rs b/src/common/menu.rs
index b60b00f..28098d3 100644
--- a/src/common/menu.rs
+++ b/src/common/menu.rs
@@ -238,6 +238,7 @@ pub unsafe fn write_menu() {
     add_bitflag_submenu!(overall_menu, "Miss Tech Options", miss_tech_state, MissTechFlags);
     add_bitflag_submenu!(overall_menu, "Defensive Options", defensive_state, Defensive);
 
+    add_bitflag_submenu!(overall_menu, "Aerial Delay", aerial_delay, Delay);
     add_bitflag_submenu!(overall_menu, "OoS Offset", oos_offset, Delay);
     add_bitflag_submenu!(overall_menu, "Reaction Time", reaction_time, Delay);
 
@@ -247,14 +248,25 @@ pub unsafe fn write_menu() {
     add_bitflag_submenu!(overall_menu, "Full Hop", full_hop, BoolFlag);
 
     add_bitflag_submenu!(overall_menu, "Shield Tilt", shield_tilt, Direction);
-
-    add_bitflag_submenu!(overall_menu, "DI", di_state, Direction);
-    add_bitflag_submenu!(overall_menu, "SDI", sdi_state, Direction);
+    add_bitflag_submenu!(overall_menu, "DI Direction", di_state, Direction);
+    add_bitflag_submenu!(overall_menu, "SDI Direction", sdi_state, Direction);
     add_bitflag_submenu!(overall_menu, "Airdodge Direction", air_dodge_dir, Direction);
 
     overall_menu.add_sub_menu(
-        "Shield Toggles", 
-        "shield_state", 
+        "SDI Strength",
+        "sdi_strength",
+        MENU.sdi_strength as usize,
+        [
+            ("Normal", SdiStrength::Normal as usize),
+            ("Medium", SdiStrength::Medium as usize),
+            ("High", SdiStrength::High as usize),
+        ].to_vec(),
+        [].to_vec()
+    );
+
+    overall_menu.add_sub_menu(
+        "Shield Toggles",
+        "shield_state",
         MENU.shield_state as usize,
         [
             ("None", Shield::None as usize),
@@ -276,10 +288,14 @@ pub unsafe fn write_menu() {
         ].to_vec()
     );
 
-    // SDI strength
-
 
     // OnOff flags
+    overall_menu.add_sub_menu_onoff(
+        "Save Damage",
+        "save_damage",
+        MENU.save_damage as usize,
+        (MENU.save_damage as usize & OnOff::On as usize) != 0
+    );
     overall_menu.add_sub_menu_onoff(
         "Hitbox Visualization",
         "hitbox_vis",