PCem
changeset 122:84742b645324
Added Phoenix Trio64.
S3 cards now report FPM memory - allows 4 MB on Phoenix Trio64.
| author | TomW |
|---|---|
| date | Thu Jul 10 20:25:10 2014 +0100 |
| parents | 173e1f058566 |
| children | fdffe4113922 |
| files | src/ibm.h src/vid_s3.c src/vid_s3.h src/video.c |
| diffstat | 4 files changed, 73 insertions(+), 2 deletions(-) [+] |
line diff
1.1 --- a/src/ibm.h Wed Jul 09 22:12:59 2014 +0100 1.2 +++ b/src/ibm.h Thu Jul 10 20:25:10 2014 +0100 1.3 @@ -347,6 +347,7 @@ 1.4 GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/ 1.5 GFX_VIRGEDX, /*S3 Virge/DX*/ 1.6 GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/ 1.7 + GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/ 1.8 1.9 GFX_MAX 1.10 };
2.1 --- a/src/vid_s3.c Wed Jul 09 22:12:59 2014 +0100 2.2 +++ b/src/vid_s3.c Thu Jul 10 20:25:10 2014 +0100 2.3 @@ -1933,9 +1933,9 @@ 2.4 NULL); 2.5 2.6 if (PCI) 2.7 - svga->crtc[0x36] = 2 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5); 2.8 + svga->crtc[0x36] = 2 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5); 2.9 else 2.10 - svga->crtc[0x36] = 1 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5); 2.11 + svga->crtc[0x36] = 1 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5); 2.12 svga->crtc[0x37] = 1 | (7 << 5); 2.13 2.14 s3_io_set(s3); 2.15 @@ -2012,6 +2012,26 @@ 2.16 return rom_present("roms/86C732P.bin"); 2.17 } 2.18 2.19 +void *s3_phoenix_trio64_init() 2.20 +{ 2.21 + s3_t *s3 = s3_init("roms/86c764x1.bin", S3_TRIO64); 2.22 + svga_t *svga = &s3->svga; 2.23 + 2.24 + s3->id = 0xe1; /*Trio64*/ 2.25 + s3->id_ext = s3->id_ext_pci = 0x11; 2.26 + s3->packed_mmio = 1; 2.27 + 2.28 + s3->getclock = s3_trio64_getclock; 2.29 + s3->getclock_p = s3; 2.30 + 2.31 + return s3; 2.32 +} 2.33 + 2.34 +int s3_phoenix_trio64_available() 2.35 +{ 2.36 + return rom_present("roms/86c764x1.bin"); 2.37 +} 2.38 + 2.39 void s3_close(void *p) 2.40 { 2.41 s3_t *s3 = (s3_t *)p; 2.42 @@ -2133,6 +2153,41 @@ 2.43 } 2.44 }; 2.45 2.46 +static device_config_t s3_phoenix_trio64_config[] = 2.47 +{ 2.48 + { 2.49 + .name = "memory", 2.50 + .description = "Memory size", 2.51 + .type = CONFIG_SELECTION, 2.52 + .selection = 2.53 + { 2.54 + { 2.55 + .description = "512 KB", 2.56 + .value = 0 2.57 + }, 2.58 + { 2.59 + .description = "1 MB", 2.60 + .value = 1 2.61 + }, 2.62 + { 2.63 + .description = "2 MB", 2.64 + .value = 2 2.65 + }, 2.66 + { 2.67 + .description = "4 MB", 2.68 + .value = 4 2.69 + }, 2.70 + { 2.71 + .description = "" 2.72 + } 2.73 + }, 2.74 + .default_int = 2 2.75 + }, 2.76 + { 2.77 + .type = -1 2.78 + } 2.79 +}; 2.80 + 2.81 device_t s3_bahamas64_device = 2.82 { 2.83 "Paradise Bahamas 64 (S3 Vision864)", 2.84 @@ -2171,3 +2226,16 @@ 2.85 s3_add_status_info, 2.86 s3_phoenix_trio32_config 2.87 }; 2.88 + 2.89 +device_t s3_phoenix_trio64_device = 2.90 +{ 2.91 + "Phoenix S3 Trio64", 2.92 + 0, 2.93 + s3_phoenix_trio64_init, 2.94 + s3_close, 2.95 + s3_phoenix_trio64_available, 2.96 + s3_speed_changed, 2.97 + s3_force_redraw, 2.98 + s3_add_status_info, 2.99 + s3_phoenix_trio64_config 2.100 +};
3.1 --- a/src/vid_s3.h Wed Jul 09 22:12:59 2014 +0100 3.2 +++ b/src/vid_s3.h Thu Jul 10 20:25:10 2014 +0100 3.3 @@ -1,3 +1,4 @@ 3.4 device_t s3_bahamas64_device; 3.5 device_t s3_9fx_device; 3.6 device_t s3_phoenix_trio32_device; 3.7 +device_t s3_phoenix_trio64_device;
4.1 --- a/src/video.c Wed Jul 09 22:12:59 2014 +0100 4.2 +++ b/src/video.c Thu Jul 10 20:25:10 2014 +0100 4.3 @@ -58,6 +58,7 @@ 4.4 {"OAK OTI-067", &oti067_device, GFX_OTI067}, 4.5 {"Paradise Bahamas 64 (S3 Vision864)", &s3_bahamas64_device, GFX_BAHAMAS64}, 4.6 {"Phoenix S3 Trio32", &s3_phoenix_trio32_device, GFX_PHOENIX_TRIO32}, 4.7 + {"Phoenix S3 Trio64", &s3_phoenix_trio64_device, GFX_PHOENIX_TRIO64}, 4.8 {"S3 ViRGE/DX", &s3_virge_375_device, GFX_VIRGEDX}, 4.9 {"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA}, 4.10 {"Tseng ET4000AX", &et4000_device, GFX_ET4000},
