Here is how i do billboard sprites. Let's say you have a 320 by 240 screen.
The ground texture, you need to use some sort of mode 7. I think someone ported Rojohounds mode 7, but im not sure.
You could do a old school "Don't Starve", without the floor texture i suppose ;)
I use one "2d" sprite, and one "3d" sprite. Put those in a container, for easy picking. You can use one "3d" sprite only, but then you need a starting x position and starting y position from the 2d map view, then do the translation. Put all the variables on the "3d" sprite. That's maybe better for older computers.
Var1 = player.x - 2dsprite.x
Var2 = player.y - 2dsprite.y
Var3 = angle(0,0,Var1,Var2)-player.angle
Var4 = 160+tan(Var3)*320 (The rule here is half the screen resolution, * the full resolution).
Set the "3d" sprite x pos to var4.
The y position of the "3d" sprite you can mess around with. In a raycaster engine, you would usaly set the y value half of the screen height (in this case 120).
To set the height, just do:
"somevalue"/Distance(player.x,player.y,2dsprite.x,2dsprite.y)/cos(anglediff(player.angle,angle(player.x,player.y,2dsprite.x,2dsprite.y)))*"somevalue"
If "3d" sprite height is less than 0, set height to 0.
Set the width value to the height value. This is dependent on how you set up your sprites though, you have to play around with the width values.