diff --git a/wpilibcIntegrationTests/src/main/native/cpp/DriverStationTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/DriverStationTest.cpp
index e4a2721..0369717 100644
--- a/wpilibcIntegrationTests/src/main/native/cpp/DriverStationTest.cpp
+++ b/wpilibcIntegrationTests/src/main/native/cpp/DriverStationTest.cpp
@@ -4,6 +4,7 @@
 
 #include "frc/DriverStation.h"  // NOLINT(build/include_order)
 
+#include <hal/DriverStation.h>
 #include <units/math.h>
 #include <units/time.h>
 
@@ -20,11 +21,16 @@
 TEST(DriverStationTest, WaitForData) {
   units::microsecond_t initialTime(frc::RobotController::GetFPGATime());
 
+  wpi::Event waitEvent{true};
+  HAL_ProvideNewDataEventHandle(waitEvent.GetHandle());
+
   // 20ms waiting intervals * 50 = 1s
   for (int i = 0; i < 50; i++) {
-    frc::DriverStation::WaitForData();
+    wpi::WaitForObject(waitEvent.GetHandle());
   }
 
+  HAL_RemoveNewDataEventHandle(waitEvent.GetHandle());
+
   units::microsecond_t finalTime(frc::RobotController::GetFPGATime());
 
   EXPECT_NEAR_UNITS(1_s, finalTime - initialTime, 200_ms);
diff --git a/wpilibcIntegrationTests/src/main/native/cpp/PreferencesTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/PreferencesTest.cpp
index 5e79f27..78d9c43 100644
--- a/wpilibcIntegrationTests/src/main/native/cpp/PreferencesTest.cpp
+++ b/wpilibcIntegrationTests/src/main/native/cpp/PreferencesTest.cpp
@@ -7,6 +7,7 @@
 #include <cstdio>
 #include <fstream>
 
+#include <networktables/MultiSubscriber.h>
 #include <networktables/NetworkTableInstance.h>
 #include <ntcore.h>
 #include <units/time.h>
@@ -14,7 +15,7 @@
 #include "frc/Timer.h"
 #include "gtest/gtest.h"
 
-static const char* kFileName = "networktables.ini";
+static const char* kFileName = "networktables.json";
 static constexpr auto kSaveTime = 1.2_s;
 
 /**
@@ -27,47 +28,71 @@
 
   std::remove(kFileName);
   std::ofstream preferencesFile(kFileName);
-  preferencesFile << "[NetworkTables Storage 3.0]" << std::endl;
-  preferencesFile
-      << "string \"/Preferences/testFileGetString\"=\"Hello, preferences file\""
-      << std::endl;
-  preferencesFile << "double \"/Preferences/testFileGetInt\"=1" << std::endl;
-  preferencesFile << "double \"/Preferences/testFileGetDouble\"=0.5"
-                  << std::endl;
-  preferencesFile << "double \"/Preferences/testFileGetFloat\"=0.25"
-                  << std::endl;
-  preferencesFile << "boolean \"/Preferences/testFileGetBoolean\"=true"
-                  << std::endl;
-  preferencesFile
-      << "double \"/Preferences/testFileGetLong\"=1000000000000000000"
-      << std::endl;
+  preferencesFile << "[" << std::endl;
+  preferencesFile << "{\"type\":\"string\","
+                  << "\"name\":\"/Preferences/testFileGetString\","
+                  << "\"value\":\"Hello, preferences file\","
+                  << "\"properties\":{\"persistent\":true}}," << std::endl;
+  preferencesFile << "{\"type\":\"int\","
+                  << "\"name\":\"/Preferences/testFileGetInt\","
+                  << "\"value\":1,"
+                  << "\"properties\":{\"persistent\":true}}," << std::endl;
+  preferencesFile << "{\"type\":\"double\","
+                  << "\"name\":\"/Preferences/testFileGetDouble\","
+                  << "\"value\":0.5,"
+                  << "\"properties\":{\"persistent\":true}}," << std::endl;
+  preferencesFile << "{\"type\":\"float\","
+                  << "\"name\":\"/Preferences/testFileGetFloat\","
+                  << "\"value\":0.25,"
+                  << "\"properties\":{\"persistent\":true}}," << std::endl;
+  preferencesFile << "{\"type\":\"boolean\","
+                  << "\"name\":\"/Preferences/testFileGetBoolean\","
+                  << "\"value\":true,"
+                  << "\"properties\":{\"persistent\":true}}]" << std::endl;
   preferencesFile.close();
 
+  nt::MultiSubscriber suball{inst, {{std::string_view{}}}};
   inst.StartServer();
 
+  int count = 0;
+  while ((inst.GetNetworkMode() & NT_NET_MODE_STARTING) != 0) {
+    frc::Wait(10_ms);
+    count++;
+    if (count > 30) {
+      FAIL() << "timed out waiting for server startup";
+    }
+  }
+
   EXPECT_EQ("Hello, preferences file",
             frc::Preferences::GetString("testFileGetString"));
   EXPECT_EQ(1, frc::Preferences::GetInt("testFileGetInt"));
   EXPECT_FLOAT_EQ(0.5, frc::Preferences::GetDouble("testFileGetDouble"));
   EXPECT_FLOAT_EQ(0.25f, frc::Preferences::GetFloat("testFileGetFloat"));
   EXPECT_TRUE(frc::Preferences::GetBoolean("testFileGetBoolean"));
-  EXPECT_EQ(1000000000000000000ll,
-            frc::Preferences::GetLong("testFileGetLong"));
 }
 
 /**
  * If we set some values using the Preferences class, test that they show up
- * in networktables.ini
+ * in networktables.json
  */
 TEST(PreferencesTest, WritePreferencesToFile) {
   auto inst = nt::NetworkTableInstance::GetDefault();
   inst.StartServer();
+
+  int count = 0;
+  while ((inst.GetNetworkMode() & NT_NET_MODE_STARTING) != 0) {
+    frc::Wait(10_ms);
+    count++;
+    if (count > 30) {
+      FAIL() << "timed out waiting for server startup";
+    }
+  }
+
   frc::Preferences::Remove("testFileGetString");
   frc::Preferences::Remove("testFileGetInt");
   frc::Preferences::Remove("testFileGetDouble");
   frc::Preferences::Remove("testFileGetFloat");
   frc::Preferences::Remove("testFileGetBoolean");
-  frc::Preferences::Remove("testFileGetLong");
 
   frc::Wait(kSaveTime);
 
@@ -76,19 +101,52 @@
   frc::Preferences::SetDouble("testFileSetDouble", 0.5);
   frc::Preferences::SetFloat("testFileSetFloat", 0.25f);
   frc::Preferences::SetBoolean("testFileSetBoolean", true);
-  frc::Preferences::SetLong("testFileSetLong", 1000000000000000000ll);
 
   frc::Wait(kSaveTime);
 
   static char const* kExpectedFileContents[] = {
-      "[NetworkTables Storage 3.0]",
-      "string \"/Preferences/.type\"=\"RobotPreferences\"",
-      "boolean \"/Preferences/testFileSetBoolean\"=true",
-      "double \"/Preferences/testFileSetDouble\"=0.5",
-      "double \"/Preferences/testFileSetFloat\"=0.25",
-      "double \"/Preferences/testFileSetInt\"=1",
-      "double \"/Preferences/testFileSetLong\"=1e+18",
-      "string \"/Preferences/testFileSetString\"=\"Hello, preferences file\""};
+      "[",
+      "  {",
+      "    \"name\": \"/Preferences/testFileSetString\",",
+      "    \"type\": \"string\",",
+      "    \"value\": \"Hello, preferences file\",",
+      "    \"properties\": {",
+      "      \"persistent\": true",
+      "    }",
+      "  },",
+      "  {",
+      "    \"name\": \"/Preferences/testFileSetInt\",",
+      "    \"type\": \"int\",",
+      "    \"value\": 1,",
+      "    \"properties\": {",
+      "      \"persistent\": true",
+      "    }",
+      "  },",
+      "  {",
+      "    \"name\": \"/Preferences/testFileSetDouble\",",
+      "    \"type\": \"double\",",
+      "    \"value\": 0.5,",
+      "    \"properties\": {",
+      "      \"persistent\": true",
+      "    }",
+      "  },",
+      "  {",
+      "    \"name\": \"/Preferences/testFileSetFloat\",",
+      "    \"type\": \"float\",",
+      "    \"value\": 0.25,",
+      "    \"properties\": {",
+      "      \"persistent\": true",
+      "    }",
+      "  },",
+      "  {",
+      "    \"name\": \"/Preferences/testFileSetBoolean\",",
+      "    \"type\": \"boolean\",",
+      "    \"value\": true,",
+      "    \"properties\": {",
+      "      \"persistent\": true",
+      "    }",
+      "  }",
+      "]"};
 
   std::ifstream preferencesFile(kFileName);
   for (auto& kExpectedFileContent : kExpectedFileContents) {
@@ -99,6 +157,6 @@
     std::getline(preferencesFile, line);
 
     ASSERT_EQ(kExpectedFileContent, line)
-        << "A line in networktables.ini was not correct";
+        << "A line in networktables.json was not correct";
   }
 }
diff --git a/wpilibcIntegrationTests/src/main/native/cpp/TestEnvironment.cpp b/wpilibcIntegrationTests/src/main/native/cpp/TestEnvironment.cpp
index 1f5e360..59a3a58 100644
--- a/wpilibcIntegrationTests/src/main/native/cpp/TestEnvironment.cpp
+++ b/wpilibcIntegrationTests/src/main/native/cpp/TestEnvironment.cpp
@@ -45,6 +45,7 @@
     fmt::print("Started coms\n");
 
     int enableCounter = 0;
+    frc::DriverStation::RefreshData();
     while (!frc::DriverStation::IsEnabled()) {
       if (enableCounter > 50) {
         // Robot did not enable properly after 5 seconds.
@@ -56,6 +57,7 @@
       std::this_thread::sleep_for(100ms);
 
       fmt::print("Waiting for enable: {}\n", enableCounter++);
+      frc::DriverStation::RefreshData();
     }
   }
 
diff --git a/wpilibcIntegrationTests/src/main/native/cpp/mockds/MockDS.cpp b/wpilibcIntegrationTests/src/main/native/cpp/mockds/MockDS.cpp
index b2e5c2d..2e53a9a 100644
--- a/wpilibcIntegrationTests/src/main/native/cpp/mockds/MockDS.cpp
+++ b/wpilibcIntegrationTests/src/main/native/cpp/mockds/MockDS.cpp
@@ -12,7 +12,7 @@
 #include <hal/cpp/fpga_clock.h>
 #include <wpi/Logger.h>
 #include <wpi/SmallVector.h>
-#include <wpi/UDPClient.h>
+#include <wpinet/UDPClient.h>
 
 static void LoggerFunc(unsigned int level, const char* file, unsigned int line,
                        const char* msg) {
