Removed "device->SetFVF(D3DFVF_XYZ);" line from Direct3D8::CreateDevice. This fixes an issue with game Haegemonia Legions of Iron. It seems there is no need to declare a default vertex here. According to Microsoft documentation D3D8 applications should call SetVertexShader API before using a vertex and SetFVF already called when an application calls SetVertexShader. https://msdn.microsoft.com/en-us/library/windows/desktop/bb204851(v=vs.85).aspx#Vertex_Declaration_Changes
Minor updates to convert_caps and convert_surface_desc to simplify code.
Updates to convert_present_parameters for better d3d9 copmatibility.
Updated logic for when MultiSampleType should be set to D3DMULTISAMPLE_NONE.
Changed PresentationInterval to default to D3DPRESENT_INTERVAL_ONE, the normal d3d9 default and makes more copmatible with d3d9 when D3DSWAPEFFECT_COPY_VSYNC was used. According to Microsoft D3DPRESENT_INTERVAL_IMMEDIATE did nothing in fullscreen on d3d8 when D3DSWAPEFFECT_COPY_VSYNC was used. So this is attempting to replicate that behavor.
Minor updates to the code slightly for when SwapEffect is set to D3DSWAPEFFECT_COPY.