Added Phoenix Trio64.

S3 cards now report FPM memory - allows 4 MB on Phoenix Trio64.
This commit is contained in:
TomW 2014-07-10 20:25:10 +01:00
commit b491d70a58
4 changed files with 73 additions and 2 deletions

View file

@ -347,6 +347,7 @@ enum
GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/
GFX_VIRGEDX, /*S3 Virge/DX*/
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
GFX_MAX
};

View file

@ -1933,9 +1933,9 @@ static void *s3_init(char *bios_fn, int chip)
NULL);
if (PCI)
svga->crtc[0x36] = 2 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
svga->crtc[0x36] = 2 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
else
svga->crtc[0x36] = 1 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
svga->crtc[0x36] = 1 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
svga->crtc[0x37] = 1 | (7 << 5);
s3_io_set(s3);
@ -2012,6 +2012,26 @@ int s3_phoenix_trio32_available()
return rom_present("roms/86C732P.bin");
}
void *s3_phoenix_trio64_init()
{
s3_t *s3 = s3_init("roms/86c764x1.bin", S3_TRIO64);
svga_t *svga = &s3->svga;
s3->id = 0xe1; /*Trio64*/
s3->id_ext = s3->id_ext_pci = 0x11;
s3->packed_mmio = 1;
s3->getclock = s3_trio64_getclock;
s3->getclock_p = s3;
return s3;
}
int s3_phoenix_trio64_available()
{
return rom_present("roms/86c764x1.bin");
}
void s3_close(void *p)
{
s3_t *s3 = (s3_t *)p;
@ -2133,6 +2153,41 @@ static device_config_t s3_phoenix_trio32_config[] =
}
};
static device_config_t s3_phoenix_trio64_config[] =
{
{
.name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.selection =
{
{
.description = "512 KB",
.value = 0
},
{
.description = "1 MB",
.value = 1
},
{
.description = "2 MB",
.value = 2
},
{
.description = "4 MB",
.value = 4
},
{
.description = ""
}
},
.default_int = 2
},
{
.type = -1
}
};
device_t s3_bahamas64_device =
{
"Paradise Bahamas 64 (S3 Vision864)",
@ -2171,3 +2226,16 @@ device_t s3_phoenix_trio32_device =
s3_add_status_info,
s3_phoenix_trio32_config
};
device_t s3_phoenix_trio64_device =
{
"Phoenix S3 Trio64",
0,
s3_phoenix_trio64_init,
s3_close,
s3_phoenix_trio64_available,
s3_speed_changed,
s3_force_redraw,
s3_add_status_info,
s3_phoenix_trio64_config
};

View file

@ -1,3 +1,4 @@
device_t s3_bahamas64_device;
device_t s3_9fx_device;
device_t s3_phoenix_trio32_device;
device_t s3_phoenix_trio64_device;

View file

@ -58,6 +58,7 @@ static VIDEO_CARD video_cards[] =
{"OAK OTI-067", &oti067_device, GFX_OTI067},
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
{"Phoenix S3 Trio32", &s3_phoenix_trio32_device, GFX_PHOENIX_TRIO32},
{"Phoenix S3 Trio64", &s3_phoenix_trio64_device, GFX_PHOENIX_TRIO64},
{"S3 ViRGE/DX", &s3_virge_375_device, GFX_VIRGEDX},
{"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA},
{"Tseng ET4000AX", &et4000_device, GFX_ET4000},