diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -11,8 +11,8 @@
 can be used to modify replays in order to force everyone into the same car or
 change the map a game was played on.
 
-Rattletrap supports every version of Rocket League up to [1.84][], which was
-released on 2020-06-16.  If a replay can be played by the Rocket League client,
+Rattletrap supports every version of Rocket League up to [1.88][], which was
+released on 2020-12-08.  If a replay can be played by the Rocket League client,
 it can be parsed by Rattletrap. (If not, that's a bug. Please report it!)
 
 Rattletrap is a command-line application. You should only use it if you're
@@ -134,7 +134,7 @@
 [Docker build badge]: https://img.shields.io/docker/build/taylorfausak/rattletrap.svg?label=docker&logo=docker&logoColor=white
 [docker build]: https://hub.docker.com/r/taylorfausak/rattletrap
 [Rocket League]: https://www.rocketleague.com
-[1.84]: https://www.rocketleague.com/news/patch-notes-v1-84/
+[1.88]: https://www.rocketleague.com/news/patch-notes--december-update/
 [Ball Chasing]: https://ballchasing.com
 [Haskell]: https://www.haskell.org
 [C# parser]: https://github.com/jjbott/RocketLeagueReplayParser
diff --git a/rattletrap.cabal b/rattletrap.cabal
--- a/rattletrap.cabal
+++ b/rattletrap.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name: rattletrap
-version: 9.2.0
+version: 9.3.0
 
 category: Game
 description: Rattletrap parses and generates Rocket League replays.
@@ -25,8 +25,8 @@
     aeson-pretty ^>= 0.8.7,
     base >= 4.11.1 && < 4.15,
     binary ^>= 0.8.5,
-    binary-bits ^>= 0.5,
     bytestring ^>= 0.10.8,
+    caerbannog ^>= 0.6.0,
     containers >= 0.5.11 && < 0.7,
     filepath ^>= 1.4.2,
     http-client >= 0.5.13 && < 0.8,
diff --git a/source/library/Rattletrap/Data.hs b/source/library/Rattletrap/Data.hs
--- a/source/library/Rattletrap/Data.hs
+++ b/source/library/Rattletrap/Data.hs
@@ -106,6 +106,7 @@
   , "TAGame.GameEvent_SoccarSplitscreen_TA"
   , "TAGame.GRI_TA"
   , "TAGame.MaxTimeWarningData_TA"
+  , "TAGame.RumblePickups_TA"
   , "TAGame.PRI_TA"
   , "TAGame.SpecialPickup_BallCarSpring_TA"
   , "TAGame.SpecialPickup_BallFreeze_TA"
@@ -210,6 +211,7 @@
   , ("ProjectX.Default__NetModeReplicator_X", "ProjectX.NetModeReplicator")
   , ("TAGame.Default__CameraSettingsActor_TA", "TAGame.CameraSettingsActor_TA")
   , ("TAGame.Default__MaxTimeWarningData_TA", "TAGame.MaxTimeWarningData_TA")
+  , ("TAGame.Default__RumblePickups_TA", "TAGame.RumblePickups_TA")
   , ("TAGame.Default__PRI_TA", "TAGame.PRI_TA")
   , ("TheWorld:PersistentLevel.BreakOutActor_Platform_TA", "TAGame.BreakOutActor_Platform_TA")
   , ("TheWorld:PersistentLevel.CrowdActor_TA", "TAGame.CrowdActor_TA")
@@ -228,6 +230,7 @@
   , ("Engine.Actor:Role", AttributeTypeEnum)
   , ("Engine.GameReplicationInfo:bMatchIsOver", AttributeTypeBoolean)
   , ("Engine.GameReplicationInfo:GameClass", AttributeTypeFlaggedInt)
+  , ("TAGame.Car_TA:RumblePickups", AttributeTypeFlaggedInt)
   , ("Engine.GameReplicationInfo:ServerName", AttributeTypeString)
   , ("Engine.Pawn:PlayerReplicationInfo", AttributeTypeFlaggedInt)
   , ("Engine.PlayerReplicationInfo:bBot", AttributeTypeBoolean)
diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs
--- a/source/test-suite/Main.hs
+++ b/source/test-suite/Main.hs
@@ -184,6 +184,7 @@
   , ("db70", "new lag indicator")
   , ("dcab", "weird ball attribute value")
   , ("dcb3", "a pawn type attribute")
+  , ("dd14", "v1.88")
   , ("de56", "a problematic product attribute")
   , ("e80d", "unlimited time")
   , ("e978", "distracted")
