diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index 7bbeb69a4..a0366b299 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -8,7 +8,7 @@ * * S3 emulation. * - * Version: @(#)vid_s3.c 1.0.20 2018/10/02 + * Version: @(#)vid_s3.c 1.0.21 2018/10/02 * * Authors: Sarah Walker, * Miran Grca, @@ -35,10 +35,11 @@ #include "vid_sdac_ramdac.h" #include "vid_bt485_ramdac.h" #include "vid_icd2061.h" +#include "../cpu/cpu.h" #define ROM_PARADISE_BAHAMAS64 L"roms/video/s3/bahamas64.bin" #define ROM_PHOENIX_VISION864 L"roms/video/s3/86c864p.bin" -#define ROM_DIAMOND_STEALTH64_964 L"roms/video/s3/964_107u.rom" +#define ROM_DIAMOND_STEALTH64_964 L"roms/video/s3/964_107h.rom" #define ROM_PHOENIX_TRIO32 L"roms/video/s3/86c732p.bin" #define ROM_NUMBER9_9FX L"roms/video/s3/s3_764.bin" #define ROM_PHOENIX_TRIO64 L"roms/video/s3/86c764x1.bin" @@ -111,7 +112,6 @@ typedef struct s3_t { mem_mapping_t linear_mapping; mem_mapping_t mmio_mapping; - mem_mapping_t new_mmio_mapping; uint8_t has_bios; rom_t bios_rom; @@ -1131,10 +1131,8 @@ void s3_out(uint16_t addr, uint8_t val, void *p) if (s3->chip == S3_VISION964) break; svga->hwcursor.x = ((svga->crtc[0x46] << 8) | svga->crtc[0x47]) & 0x7ff; - /* pclog("X=%d\n", svga->hwcursor.x); */ if (svga->bpp == 32) svga->hwcursor.x >>= 1; svga->hwcursor.y = ((svga->crtc[0x48] << 8) | svga->crtc[0x49]) & 0x7ff; - /* pclog("Y=%d\n", svga->hwcursor.y); */ svga->hwcursor.xoff = svga->crtc[0x4e] & 63; svga->hwcursor.yoff = svga->crtc[0x4f] & 63; svga->hwcursor.addr = ((((svga->crtc[0x4c] << 8) | svga->crtc[0x4d]) & 0xfff) * 1024) + (svga->hwcursor.yoff * 16); @@ -1346,7 +1344,6 @@ void s3_updatemapping(s3_t *s3) mem_mapping_disable(&svga->mapping); mem_mapping_disable(&s3->linear_mapping); mem_mapping_disable(&s3->mmio_mapping); - mem_mapping_disable(&s3->new_mmio_mapping); return; } @@ -2965,12 +2962,7 @@ static void *s3_init(const device_t *info) s3_accel_read, NULL, NULL, s3_accel_write, s3_accel_write_w, s3_accel_write_l, NULL, MEM_MAPPING_EXTERNAL, s3); - mem_mapping_add(&s3->new_mmio_mapping, 0, 0, - s3_accel_read, NULL, NULL, - s3_accel_write, s3_accel_write_w, s3_accel_write_l, - NULL, MEM_MAPPING_EXTERNAL, s3); mem_mapping_disable(&s3->mmio_mapping); - mem_mapping_disable(&s3->new_mmio_mapping); if (chip == S3_VISION964) svga_init(&s3->svga, s3, vram_size, @@ -3060,10 +3052,11 @@ static void *s3_init(const device_t *info) case S3_DIAMOND_STEALTH64_964: svga->decode_mask = (8 << 20) - 1; - s3->id = 0xd1; /*Vision964P*/ - s3->id_ext = 0xd1; - s3->id_ext_pci = 0xd1; + stepping = 0xd0; /*Vision964P*/ + s3->id = stepping; + s3->id_ext = s3->id_ext_pci = stepping; s3->packed_mmio = 1; + svga->crtc[0x5a] = 0x0a; icd2061_init(&s3->icd2061); s3->getclock = icd2061_getclock;