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:
parent
2ff2210b3b
commit
e09b68b242
5 changed files with 1208 additions and 44 deletions
|
|
@ -343,6 +343,7 @@ int romset;
|
||||||
#define GFX_OTI067 15 /*Oak OTI-067*/
|
#define GFX_OTI067 15 /*Oak OTI-067*/
|
||||||
#define GFX_MACH64GX 16 /*ATI Graphics Pro Turbo (Mach64)*/
|
#define GFX_MACH64GX 16 /*ATI Graphics Pro Turbo (Mach64)*/
|
||||||
#define GFX_CL_GD5429 17 /*Cirrus Logic CL-GD5429*/
|
#define GFX_CL_GD5429 17 /*Cirrus Logic CL-GD5429*/
|
||||||
|
#define GFX_VIRGEDX 18 /*S3 Virge/DX*/
|
||||||
|
|
||||||
int gfxcard;
|
int gfxcard;
|
||||||
|
|
||||||
|
|
|
||||||
1243
src/vid_s3_virge.c
1243
src/vid_s3_virge.c
File diff suppressed because it is too large
Load diff
|
|
@ -1 +1,2 @@
|
||||||
extern device_t s3_virge_device;
|
extern device_t s3_virge_device;
|
||||||
|
extern device_t s3_virge_375_device;
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@ static VIDEO_CARD video_cards[] =
|
||||||
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
|
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
|
||||||
{"Number Nine 9FX (S3 Trio64)", &s3_9fx_device, GFX_N9_9FX},
|
{"Number Nine 9FX (S3 Trio64)", &s3_9fx_device, GFX_N9_9FX},
|
||||||
{"Diamond Stealth 3D 2000 (S3 ViRGE)", &s3_virge_device, GFX_VIRGE},
|
{"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},
|
{"Trident TGUI9440", &tgui9440_device, GFX_TGUI9440},
|
||||||
{"VGA", &vga_device, GFX_VGA},
|
{"VGA", &vga_device, GFX_VGA},
|
||||||
{"ATI VGA Edge-16 (ATI-18800)", &ati18800_device, GFX_VGAEDGE16},
|
{"ATI VGA Edge-16 (ATI-18800)", &ati18800_device, GFX_VGAEDGE16},
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ static struct
|
||||||
#define TIMER_1SEC 1
|
#define TIMER_1SEC 1
|
||||||
|
|
||||||
int winsizex=640,winsizey=480;
|
int winsizex=640,winsizey=480;
|
||||||
int gfx_present[18];
|
int gfx_present[19];
|
||||||
int wakeups,wokeups;
|
int wakeups,wokeups;
|
||||||
#undef cs
|
#undef cs
|
||||||
CRITICAL_SECTION 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));
|
gfx_present[c] = video_card_available(video_old_to_new(c));
|
||||||
|
|
||||||
if (!video_card_available(video_old_to_new(gfxcard)))
|
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);
|
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])
|
if (gfx_present[c])
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue