You probably suffered from the early version of the raycasting algorithm, which resulted in barrel/fisheye distortion because of the way raycasting algorithm calculates distances.
When the rays sent out from the player's position intersect with walls, the distance between the player and the wall is calculated. This distance is then used to determine the height of the wall slice being drawn on the screen. However, the distance calculation is based on the player's position, resulting in non-linear scaling of the wall heights, which leads to the curved appearance.
Some later ports of the game to other platforms employed a modified version of the raycasting algorithm, where the distance calculation is adjusted to account for the angle between the player's view direction and the ray being cast. By using the correct distance for each ray, the wall slices are drawn with more accurate heights, resulting in straighter walls and less distortion.
When the rays sent out from the player's position intersect with walls, the distance between the player and the wall is calculated. This distance is then used to determine the height of the wall slice being drawn on the screen. However, the distance calculation is based on the player's position, resulting in non-linear scaling of the wall heights, which leads to the curved appearance.
Some later ports of the game to other platforms employed a modified version of the raycasting algorithm, where the distance calculation is adjusted to account for the angle between the player's view direction and the ray being cast. By using the correct distance for each ray, the wall slices are drawn with more accurate heights, resulting in straighter walls and less distortion.