# srdb **Repository Path**: mboss/srdb ## Basic Information - **Project Name**: srdb - **Description**: 模拟赛车游戏辅助工具,提供数据监听解析、显示面板,可自主扩充游戏解析及显示面板。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-09-15 - **Last Updated**: 2024-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Dirt Rally 2 | 字段 | 偏移 | | --- | --- | total_time | 0 lap_time | 4 lap_distance | 8 total_distance | 12 position_x | 16 position_y | 20 position_z | 24 speed | 28 velocity_x | 32 velocity_y | 36 velocity_z | 40 left_dir_x | 44 left_dir_y | 48 left_dir_z | 52 forward_dir_x | 56 forward_dir_y | 60 forward_dir_z | 64 suspension_position_bl | 68 suspension_position_br | 72 suspension_position_fl | 76 suspension_position_fr | 80 suspension_velocity_bl | 84 suspension_velocity_br | 88 suspension_velocity_fl | 92 suspension_velocity_fr | 96 wheel_patch_speed_bl | 100 wheel_patch_speed_br | 104 wheel_patch_speed_fl | 108 wheel_patch_speed_fr | 112 throttle_input | 116 steering_input | 120 brake_input | 124 clutch_input | 128 gear | 132 gforce_lateral | 136 gforce_longitudinal | 140 lap | 144 engine_rate | 148 native_sli_support | 152 race_position | 156 kers_level | 160 kers_level_max | 164 drs | 168 traction_control | 172 abs | 176 fuel_in_tank | 180 fuel_capacity | 184 in_pits | 188 race_sector | 192 sector_time_1 | 196 sector_time_2 | 200 brake_temp_bl | 204 brake_temp_br | 208 brake_temp_fl | 212 brake_temp_fr | 216 tyre_pressure_bl | 220 tyre_pressure_br | 224 tyre_pressure_fl | 228 tyre_pressure_fr | 232 laps_completed | 236 total_laps | 240 track_length | 244 last_lap_time | 248 max_rpm | 252 idle_rpm | 256 max_gears | 260 ### Forza Horizon 4 ```cs public static int BufferOffset = 0; public static bool IsRaceOn(this byte[] bytes) { return GetSingle(bytes, 0) > 0; } public static uint TimestampMs(this byte[] bytes) { return GetUInt32(bytes, 4); } public static float EngineMaxRpm(this byte[] bytes) { return GetSingle(bytes, 8); } public static float EngineIdleRpm(this byte[] bytes) { return GetSingle(bytes, 12); } public static float CurrentEngineRpm(this byte[] bytes) { return GetSingle(bytes, 16); } public static float AccelerationX(this byte[] bytes) { return GetSingle(bytes, 20); } public static float AccelerationY(this byte[] bytes) { return GetSingle(bytes, 24); } public static float AccelerationZ(this byte[] bytes) { return GetSingle(bytes, 28); } public static float VelocityX(this byte[] bytes) { return GetSingle(bytes, 32); } public static float VelocityY(this byte[] bytes) { return GetSingle(bytes, 36); } public static float VelocityZ(this byte[] bytes) { return GetSingle(bytes, 40); } public static float AngularVelocityX(this byte[] bytes) { return GetSingle(bytes, 44); } public static float AngularVelocityY(this byte[] bytes) { return GetSingle(bytes, 48); } public static float AngularVelocityZ(this byte[] bytes) { return GetSingle(bytes, 52); } public static float Yaw(this byte[] bytes) { return GetSingle(bytes, 56); } public static float Pitch(this byte[] bytes) { return GetSingle(bytes, 60); } public static float Roll(this byte[] bytes) { return GetSingle(bytes, 64); } public static float NormSuspensionTravelFl(this byte[] bytes) { return GetSingle(bytes, 68); } public static float NormSuspensionTravelFr(this byte[] bytes) { return GetSingle(bytes, 72); } public static float NormSuspensionTravelRl(this byte[] bytes) { return GetSingle(bytes, 76); } public static float NormSuspensionTravelRr(this byte[] bytes) { return GetSingle(bytes, 80); } public static float TireSlipRatioFl(this byte[] bytes) { return GetSingle(bytes, 84); } public static float TireSlipRatioFr(this byte[] bytes) { return GetSingle(bytes, 88); } public static float TireSlipRatioRl(this byte[] bytes) { return GetSingle(bytes, 92); } public static float TireSlipRatioRr(this byte[] bytes) { return GetSingle(bytes, 96); } public static float WheelRotationSpeedFl(this byte[] bytes) { return GetSingle(bytes, 100); } public static float WheelRotationSpeedFr(this byte[] bytes) { return GetSingle(bytes, 104); } public static float WheelRotationSpeedRl(this byte[] bytes) { return GetSingle(bytes, 108); } public static float WheelRotationSpeedRr(this byte[] bytes) { return GetSingle(bytes, 112); } public static float WheelOnRumbleStripFl(this byte[] bytes) { return GetSingle(bytes, 116); } public static float WheelOnRumbleStripFr(this byte[] bytes) { return GetSingle(bytes, 120); } public static float WheelOnRumbleStripRl(this byte[] bytes) { return GetSingle(bytes, 124); } public static float WheelOnRumbleStripRr(this byte[] bytes) { return GetSingle(bytes, 128); } public static float WheelInPuddleFl(this byte[] bytes) { return GetSingle(bytes, 132); } public static float WheelInPuddleFr(this byte[] bytes) { return GetSingle(bytes, 136); } public static float WheelInPuddleRl(this byte[] bytes) { return GetSingle(bytes, 140); } public static float WheelInPuddleRr(this byte[] bytes) { return GetSingle(bytes, 144); } public static float SurfaceRumbleFl(this byte[] bytes) { return GetSingle(bytes, 148); } public static float SurfaceRumbleFr(this byte[] bytes) { return GetSingle(bytes, 152); } public static float SurfaceRumbleRl(this byte[] bytes) { return GetSingle(bytes, 156); } public static float SurfaceRumbleRr(this byte[] bytes) { return GetSingle(bytes, 160); } public static float TireSlipAngleFl(this byte[] bytes) { return GetSingle(bytes, 164); } public static float TireSlipAngleFr(this byte[] bytes) { return GetSingle(bytes, 168); } public static float TireSlipAngleRl(this byte[] bytes) { return GetSingle(bytes, 172); } public static float TireSlipAngleRr(this byte[] bytes) { return GetSingle(bytes, 176); } public static float TireCombinedSlipFl(this byte[] bytes) { return GetSingle(bytes, 180); } public static float TireCombinedSlipFr(this byte[] bytes) { return GetSingle(bytes, 184); } public static float TireCombinedSlipRl(this byte[] bytes) { return GetSingle(bytes, 188); } public static float TireCombinedSlipRr(this byte[] bytes) { return GetSingle(bytes, 192); } public static float SuspensionTravelMetersFl(this byte[] bytes) { return GetSingle(bytes, 196); } public static float SuspensionTravelMetersFr(this byte[] bytes) { return GetSingle(bytes, 200); } public static float SuspensionTravelMetersRl(this byte[] bytes) { return GetSingle(bytes, 204); } public static float SuspensionTravelMetersRr(this byte[] bytes) { return GetSingle(bytes, 208); } public static uint CarOrdinal(this byte[] bytes) { return GetUInt8(bytes, 212); } public static uint CarClass(this byte[] bytes) { return GetUInt8(bytes, 216); } public static uint CarPerformanceIndex(this byte[] bytes) { return GetUInt8(bytes, 220); } public static uint DriveTrain(this byte[] bytes) { return GetUInt8(bytes, 224); } public static uint NumCylinders(this byte[] bytes) { return GetUInt8(bytes, 228); } // dash BufferOffset = 12; public static float PositionX(this byte[] bytes) { return GetSingle(bytes, 232 + BufferOffset); } public static float PositionY(this byte[] bytes) { return GetSingle(bytes, 236 + BufferOffset); } public static float PositionZ(this byte[] bytes) { return GetSingle(bytes, 240 + BufferOffset); } public static float Speed(this byte[] bytes) { return GetSingle(bytes, 244 + BufferOffset); } public static float Power(this byte[] bytes) { return GetSingle(bytes, 248 + BufferOffset); } public static float Torque(this byte[] bytes) { return GetSingle(bytes, 252 + BufferOffset); } public static float TireTempFl(this byte[] bytes) { return GetSingle(bytes, 256 + BufferOffset); } public static float TireTempFr(this byte[] bytes) { return GetSingle(bytes, 260 + BufferOffset); } public static float TireTempRl(this byte[] bytes) { return GetSingle(bytes, 264 + BufferOffset); } public static float TireTempRr(this byte[] bytes) { return GetSingle(bytes, 268 + BufferOffset); } public static float Boost(this byte[] bytes) { return GetSingle(bytes, 272 + BufferOffset); } public static float Fuel(this byte[] bytes) { return GetSingle(bytes, 276 + BufferOffset); } public static float Distance(this byte[] bytes) { return GetSingle(bytes, 280 + BufferOffset); } public static float BestLapTime(this byte[] bytes) { return GetSingle(bytes, 284 + BufferOffset); } public static float LastLapTime(this byte[] bytes) { return GetSingle(bytes, 288 + BufferOffset); } public static float CurrentLapTime(this byte[] bytes) { return GetSingle(bytes, 292 + BufferOffset); } public static float CurrentRaceTime(this byte[] bytes) { return GetSingle(bytes, 296 + BufferOffset); } public static uint Lap(this byte[] bytes) { return GetUInt16(bytes, 300 + BufferOffset); } public static uint RacePosition(this byte[] bytes) { return GetUInt8(bytes, 302 + BufferOffset); } public static uint Accelerator(this byte[] bytes) { return GetUInt8(bytes, 303 + BufferOffset); } public static uint Brake(this byte[] bytes) { return GetUInt8(bytes, 304 + BufferOffset); } public static uint Clutch(this byte[] bytes) { return GetUInt8(bytes, 305 + BufferOffset); } public static uint Handbrake(this byte[] bytes) { return GetUInt8(bytes, 306 + BufferOffset); } public static uint Gear(this byte[] bytes) { return GetUInt8(bytes, 307 + BufferOffset); } public static int Steer(this byte[] bytes) { return GetInt8(bytes, 308 + BufferOffset); } public static uint NormalDrivingLine(this byte[] bytes) { return GetUInt8(bytes, 309 + BufferOffset); } public static uint NormalAiBrakeDifference(this byte[] bytes) { return GetUInt8(bytes, 310 + BufferOffset); } ``` ### Forza Horizon 5 - s32 IsRaceOn; // = 1 when race is on. = 0 when in menus/race stopped … - u32 TimestampMS; //Can overflow to 0 eventually - f32 EngineMaxRpm; - f32 EngineIdleRpm; - f32 CurrentEngineRpm; - f32 AccelerationX; //In the car's local space; X = right, Y = up, Z = forward - f32 AccelerationY; - f32 AccelerationZ; - f32 VelocityX; //In the car's local space; X = right, Y = up, Z = forward - f32 VelocityY; - f32 VelocityZ; - f32 AngularVelocityX; //In the car's local space; X = pitch, Y = yaw, Z = roll - f32 AngularVelocityY; - f32 AngularVelocityZ; - f32 Yaw; - f32 Pitch; - f32 Roll; `index: 64` - f32 NormalizedSuspensionTravelFrontLeft; // Suspension travel normalized: 0.0f = max stretch; 1.0 = max compression - f32 NormalizedSuspensionTravelFrontRight; - f32 NormalizedSuspensionTravelRearLeft; - f32 NormalizedSuspensionTravelRearRight; - f32 TireSlipRatioFrontLeft; // Tire normalized slip ratio, = 0 means 100% grip and |ratio| > 1.0 means loss of grip. - f32 TireSlipRatioFrontRight; - f32 TireSlipRatioRearLeft; - f32 TireSlipRatioRearRight; - f32 WheelRotationSpeedFrontLeft; // Wheel rotation speed radians/sec. - f32 WheelRotationSpeedFrontRight; - f32 WheelRotationSpeedRearLeft; - f32 WheelRotationSpeedRearRight; - s32 WheelOnRumbleStripFrontLeft; // = 1 when wheel is on rumble strip, = 0 when off. - s32 WheelOnRumbleStripFrontRight; - s32 WheelOnRumbleStripRearLeft; - s32 WheelOnRumbleStripRearRight; `index: 128` - f32 WheelInPuddleDepthFrontLeft; // = from 0 to 1, where 1 is the deepest puddle - f32 WheelInPuddleDepthFrontRight; - f32 WheelInPuddleDepthRearLeft; - f32 WheelInPuddleDepthRearRight; - f32 SurfaceRumbleFrontLeft; // Non-dimensional surface rumble values passed to controller force feedback - f32 SurfaceRumbleFrontRight; - f32 SurfaceRumbleRearLeft; - f32 SurfaceRumbleRearRight; - f32 TireSlipAngleFrontLeft; // Tire normalized slip angle, = 0 means 100% grip and |angle| > 1.0 means loss of grip. - f32 TireSlipAngleFrontRight; - f32 TireSlipAngleRearLeft; - f32 TireSlipAngleRearRight; - f32 TireCombinedSlipFrontLeft; // Tire normalized combined slip, = 0 means 100% grip and |slip| > 1.0 means loss of grip. - f32 TireCombinedSlipFrontRight; - f32 TireCombinedSlipRearLeft; - f32 TireCombinedSlipRearRight; `index: 192` - f32 SuspensionTravelMetersFrontLeft; // Actual suspension travel in meters - f32 SuspensionTravelMetersFrontRight; - f32 SuspensionTravelMetersRearLeft; - f32 SuspensionTravelMetersRearRight; - s32 CarOrdinal; //Unique ID of the car make/model - s32 CarClass; //Between 0 (D -- worst cars) and 7 (X class -- best cars) inclusive - s32 CarPerformanceIndex; //Between 100 (slowest car) and 999 (fastest car) inclusive - s32 DrivetrainType; //Corresponds to EDrivetrainType; 0 = FWD, 1 = RWD, 2 = AWD - s32 NumCylinders; //Number of cylinders in the engine - f32 PositionX; //Position (meters) - f32 PositionY; - f32 PositionZ; - f32 Speed; // meters per second - f32 Power; // watts - f32 Torque; // newton meter - f32 TireTempFrontLeft; `index: 256` - f32 TireTempFrontRight; - f32 TireTempRearLeft; - f32 TireTempRearRight; - f32 Boost; - f32 Fuel; - f32 DistanceTraveled; - f32 BestLap; - f32 LastLap; - f32 CurrentLap; - f32 CurrentRaceTime; - u16 LapNumber; `index: 300` - u8 RacePosition; - u8 Accel; `index: 303` - u8 Brake; - u8 Clutch; - u8 HandBrake; - u8 Gear; - s8 Steer; `index: 308` - s8 NormalizedDrivingLine; - s8 NormalizedAIBrakeDifference;