S3 ViRGE S3D emulation. Currently very slow, bugs, features missing.

Added S3 ViRGE/DX emulation, as the DX drivers are better than those for the original chip.
This commit is contained in:
TomW 2014-05-26 18:13:23 +01:00
commit e09b68b242
5 changed files with 1208 additions and 44 deletions

View file

@ -343,6 +343,7 @@ int romset;
#define GFX_OTI067 15 /*Oak OTI-067*/
#define GFX_MACH64GX 16 /*ATI Graphics Pro Turbo (Mach64)*/
#define GFX_CL_GD5429 17 /*Cirrus Logic CL-GD5429*/
#define GFX_VIRGEDX 18 /*S3 Virge/DX*/
int gfxcard;

File diff suppressed because it is too large Load diff

View file

@ -1 +1,2 @@
extern device_t s3_virge_device;
extern device_t s3_virge_375_device;

View file

@ -54,6 +54,7 @@ static VIDEO_CARD video_cards[] =
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
{"Number Nine 9FX (S3 Trio64)", &s3_9fx_device, GFX_N9_9FX},
{"Diamond Stealth 3D 2000 (S3 ViRGE)", &s3_virge_device, GFX_VIRGE},
{"S3 ViRGE/DX", &s3_virge_375_device, GFX_VIRGEDX},
{"Trident TGUI9440", &tgui9440_device, GFX_TGUI9440},
{"VGA", &vga_device, GFX_VGA},
{"ATI VGA Edge-16 (ATI-18800)", &ati18800_device, GFX_VGAEDGE16},

View file

@ -51,7 +51,7 @@ static struct
#define TIMER_1SEC 1
int winsizex=640,winsizey=480;
int gfx_present[18];
int gfx_present[19];
int wakeups,wokeups;
#undef cs
CRITICAL_SECTION cs;
@ -387,13 +387,13 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
}
for (c = 0; c < 18; c++)
for (c = 0; c < 19; c++)
gfx_present[c] = video_card_available(video_old_to_new(c));
if (!video_card_available(video_old_to_new(gfxcard)))
{
if (romset!=-1) MessageBox(hwnd,"Configured video BIOS not available.\nDefaulting to available romset.","PCem error",MB_OK);
for (c = 17; c >= 0; c--)
for (c = 18; c >= 0; c--)
{
if (gfx_present[c])
{