Ah it's probably simple enough when I put the time into it. I just need to go get the code for it. From what I understand, I can store the rotation of the background in a matrix, and then all the sprites have their own matrix, which is just their position relative to the world. Then when I rotate the background matrix, to get the final positions of the sprites, I just add the sprites matrix to the background matrix to get the final (rotated) position of the sprite.
Maybe I should even be coming at it from the other end - using the matrix properly and have a projection matrix so everything has a 3D position in space, and just using the z somehow to set the scaling of each scanline.
Maybe I should even be coming at it from the other end - using the matrix properly and have a projection matrix so everything has a 3D position in space, and just using the z somehow to set the scaling of each scanline.