Added Phoenix Trio64.
S3 cards now report FPM memory - allows 4 MB on Phoenix Trio64.
This commit is contained in:
parent
0c2efae9c3
commit
b491d70a58
4 changed files with 73 additions and 2 deletions
|
|
@ -347,6 +347,7 @@ enum
|
||||||
GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/
|
GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/
|
||||||
GFX_VIRGEDX, /*S3 Virge/DX*/
|
GFX_VIRGEDX, /*S3 Virge/DX*/
|
||||||
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
|
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
|
||||||
|
GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
|
||||||
|
|
||||||
GFX_MAX
|
GFX_MAX
|
||||||
};
|
};
|
||||||
|
|
|
||||||
72
src/vid_s3.c
72
src/vid_s3.c
|
|
@ -1933,9 +1933,9 @@ static void *s3_init(char *bios_fn, int chip)
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (PCI)
|
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
|
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);
|
svga->crtc[0x37] = 1 | (7 << 5);
|
||||||
|
|
||||||
s3_io_set(s3);
|
s3_io_set(s3);
|
||||||
|
|
@ -2012,6 +2012,26 @@ int s3_phoenix_trio32_available()
|
||||||
return rom_present("roms/86C732P.bin");
|
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)
|
void s3_close(void *p)
|
||||||
{
|
{
|
||||||
s3_t *s3 = (s3_t *)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 =
|
device_t s3_bahamas64_device =
|
||||||
{
|
{
|
||||||
"Paradise Bahamas 64 (S3 Vision864)",
|
"Paradise Bahamas 64 (S3 Vision864)",
|
||||||
|
|
@ -2171,3 +2226,16 @@ device_t s3_phoenix_trio32_device =
|
||||||
s3_add_status_info,
|
s3_add_status_info,
|
||||||
s3_phoenix_trio32_config
|
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
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
device_t s3_bahamas64_device;
|
device_t s3_bahamas64_device;
|
||||||
device_t s3_9fx_device;
|
device_t s3_9fx_device;
|
||||||
device_t s3_phoenix_trio32_device;
|
device_t s3_phoenix_trio32_device;
|
||||||
|
device_t s3_phoenix_trio64_device;
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ static VIDEO_CARD video_cards[] =
|
||||||
{"OAK OTI-067", &oti067_device, GFX_OTI067},
|
{"OAK OTI-067", &oti067_device, GFX_OTI067},
|
||||||
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
|
{"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64},
|
||||||
{"Phoenix S3 Trio32", &s3_phoenix_trio32_device, GFX_PHOENIX_TRIO32},
|
{"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},
|
{"S3 ViRGE/DX", &s3_virge_375_device, GFX_VIRGEDX},
|
||||||
{"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA},
|
{"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA},
|
||||||
{"Tseng ET4000AX", &et4000_device, GFX_ET4000},
|
{"Tseng ET4000AX", &et4000_device, GFX_ET4000},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue