The last version of Doom.Net used the D3D sprite interface, but each sprite still used a single texture and matrix so there was little to no batching involved. It was painfully slow.
This version uses my volume texture atlas code from VAtlas and the billboarding rotations are done manually so they can be batched along with the level.
I'm sure using Direct3D matrices would be faster, but then that would require each sprite to be a single draw call, which would make it much slower. Using the atlas its one draw call per light-level, so all sprites can be drawn at once if there's no light variations on screen.
After looking at the palette I'm thinking of switching from A8L8 format to A8 and using index 0 as the alpha, to save even more RAM. It's kind of funny that I'm worried about saving RAM even though Doom.Net now requires volume textures and pixel shader 2.