From cac60e60876d292040865d508f19b316b13df9d0 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 28 Nov 2017 23:33:13 +0100 Subject: [PATCH] Applied the PCem Phoenix S3 Trio64 1 MB VRAM fix. --- src/video/vid_s3.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index b86bcaa42..5cee33494 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -2200,6 +2200,8 @@ static void *s3_init(device_t *info, wchar_t *bios_fn, int chip) break; case 1: /*1MB*/ /*VRAM in first MB, mirrored in 2nd MB, 3rd and 4th MBs are open bus*/ + /*This works with the #9 9FX BIOS, and matches how my real Trio64 behaves, + but does not work with the Phoenix EDO BIOS. Possibly an FPM/EDO difference?*/ svga->vram_mask = (1 << 20) - 1; svga->vram_max = 2 << 20; break; @@ -2330,12 +2332,16 @@ static void *s3_9fx_init(device_t *info) static void *s3_phoenix_trio64_init(device_t *info) { s3_t *s3 = s3_trio64_init(info, L"roms/video/s3/86c764x1.bin"); + if (device_get_config_int("memory") == 1) + s3->svga.vram_max = 1 << 20; /*Phoenix BIOS does not expect VRAM to be mirrored*/ return s3; } static void *s3_diamond_stealth64_init(device_t *info) { s3_t *s3 = s3_trio64_init(info, L"roms/video/s3/stealt64.bin"); + if (device_get_config_int("memory") == 1) + s3->svga.vram_max = 1 << 20; /*Phoenix BIOS does not expect VRAM to be mirrored*/ return s3; }