Fixed the IBM PS/1 Models 2121 and 2133 to use the correct graphics card device_t;

Removed the Mach64 ISA until someone finds a properly working BIOS;
Changed the Mach64 VLB to use the BIOS that actually works;
Moved the standalone TI CF62011 graphics card to the Dev branch until someone finds a BIOS for it;
Removed an accidental temporary change in win_dialog.c;
Reorganized the graphics card ID's to allow simplification of the MDA and VGA #define's in video.h;
Added a workaround for the TVGA8900D DAC sense, so the card is in color again.
This commit is contained in:
OBattler
2018-01-21 14:54:26 +01:00
parent 7348a45802
commit 50bb92fcbe
8 changed files with 71 additions and 83 deletions

View File

@@ -504,7 +504,7 @@ ps1_setup(int model)
if (model == 2011)
device_add(&ps1vga_device);
else
device_add(&ti_cf62011_device);
device_add(&ibm_ps1_2121_device);
}
if (model == 2121) {

View File

@@ -8,7 +8,7 @@
*
* ATi Mach64 graphics card emulation.
*
* Version: @(#)vid_ati_mach64.c 1.0.9 2018/01/21
* Version: @(#)vid_ati_mach64.c 1.0.10 2018/01/21
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
@@ -42,7 +42,7 @@
#define BIOS_ROM_PATH L"roms/video/mach64/bios.bin"
#define BIOS_ISA_ROM_PATH L"roms/video/mach64/mach64.bin"
#define BIOS_VLB_ROM_PATH L"roms/video/mach64/mach64_vlb_dram.bin"
#define BIOS_VLB_ROM_PATH L"roms/video/mach64/mach64_vlb_vram.bin"
#define BIOS_ROMVT2_PATH L"roms/video/mach64/atimach64vt2pci.bin"
@@ -3389,7 +3389,7 @@ static void *mach64gx_init(device_t *info)
mach64->config_stat0 = (5 << 9) | (3 << 3); /*ATI-68860, 256Kx16 DRAM*/
if (info->flags & DEVICE_PCI)
mach64->config_stat0 |= 0; /*PCI, 256Kx16 DRAM*/
else
else if (info->flags & DEVICE_VLB)
mach64->config_stat0 |= 1; /*VLB, 256Kx16 DRAM*/
ati_eeprom_load(&mach64->eeprom, L"mach64.nvr", 1);
@@ -3398,8 +3398,6 @@ static void *mach64gx_init(device_t *info)
rom_init(&mach64->bios_rom, BIOS_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
else if (info->flags & DEVICE_VLB)
rom_init(&mach64->bios_rom, BIOS_VLB_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
else
rom_init(&mach64->bios_rom, BIOS_ISA_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
return mach64;
}
@@ -3561,19 +3559,6 @@ static device_config_t mach64vt2_config[] =
}
};
device_t mach64gx_isa_device =
{
"ATI Mach64GX ISA",
DEVICE_ISA,
0,
mach64gx_init, mach64_close, NULL,
mach64gx_isa_available,
mach64_speed_changed,
mach64_force_redraw,
mach64_add_status_info,
mach64gx_config
};
device_t mach64gx_vlb_device =
{
"ATI Mach64GX VLB",

View File

@@ -11,13 +11,13 @@
* This is intended to be used by another SVGA driver,
* and not as a card in it's own right.
*
* Version: @(#)vid_svga.c 1.0.13 2017/12/28
* Version: @(#)vid_svga.c 1.0.14 2018/01/21
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
* Copyright 2008-2018 Sarah Walker.
* Copyright 2016-2018 Miran Grca.
*/
#include <stdio.h>
#include <stdint.h>
@@ -365,6 +365,12 @@ uint8_t svga_in(uint16_t addr, void *p)
case 0x3C1:
return svga->attrregs[svga->attraddr];
case 0x3c2:
if (gfxcard == GFX_TVGA) {
if ((svga->vgapal[0].r + svga->vgapal[0].g + svga->vgapal[0].b) >= 0x50)
temp = 0;
else
temp = 0x10;
} else
temp = svga->sense;
return temp;
case 0x3C3:

View File

@@ -8,7 +8,7 @@
*
* Define all known video cards.
*
* Version: @(#)vid_table.c 1.0.9 2018/01/21
* Version: @(#)vid_table.c 1.0.10 2018/01/21
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
@@ -82,10 +82,6 @@ video_cards[] = {
NULL, GFX_NONE },
{ "Internal", "internal",
NULL, GFX_INTERNAL },
{ "[ISA] ATI Graphics Pro Turbo (Mach64 GX)", "mach64x_vlb",
&mach64gx_isa_device, GFX_MACH64GX_ISA },
{ "[ISA] ATI VGA Charger (ATI-28800-5)", "ati28800",
&ati28800_device, GFX_VGACHARGER },
{ "[ISA] ATI VGA Charger (ATI-28800-5)", "ati28800",
&ati28800_device, GFX_VGACHARGER },
{ "[ISA] ATI VGA Wonder XL24 (ATI-28800-6)", "ati28800w",
@@ -121,8 +117,10 @@ video_cards[] = {
{ "[ISA] Paradise WD90C11-LR", "wd90c11", &paradise_wd90c11_device, GFX_WD90C11 },
{ "[ISA] Paradise WD90C30-LR", "wd90c30", &paradise_wd90c30_device, GFX_WD90C30 },
{ "[ISA] Plantronics ColorPlus", "plantronics", &colorplus_device, GFX_COLORPLUS },
#if defined(DEV_BRANCH) && defined(USE_TI)
{"[ISA] TI CF62011 SVGA", "ti_cf62011",
&ti_cf62011_device, GFX_TICF62011 },
#endif
{ "[ISA] Trident TVGA8900D", "tvga8900d", &tvga8900d_device, GFX_TVGA },
{ "[ISA] Tseng ET4000AX", "et4000ax", &et4000_device, GFX_ET4000 },
{"[ISA] VGA", "vga", &vga_device, GFX_VGA },

View File

@@ -42,15 +42,15 @@
* which are the same as the XGA. It supports up to 1MB of VRAM,
* but we lock it down to 512K. The PS/1 2122 had 256K.
*
* Version: @(#)vid_ti_cf62011.c 1.0.2 2017/11/05
* Version: @(#)vid_ti_cf62011.c 1.0.3 2018/01/21
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
* Copyright 2017 Fred N. van Kempen.
* Copyright 2008-2018 Sarah Walker.
* Copyright 2016-2018 Miran Grca.
* Copyright 2017,2018 Fred N. van Kempen.
*/
#include <stdio.h>
#include <stdint.h>
@@ -270,6 +270,7 @@ vid_init(device_t *info)
}
#if defined(DEV_BRANCH) && defined(USE_TI)
static device_config_t vid_config[] =
{
{
@@ -306,6 +307,7 @@ device_t ti_cf62011_device = {
vid_add_status_info,
vid_config
};
#endif
device_t ibm_ps1_2121_device = {

View File

@@ -1,2 +1,4 @@
#if defined(DEV_BRANCH) && defined(USE_TI)
extern device_t ti_cf62011_device;
#endif
extern device_t ibm_ps1_2121_device;

View File

@@ -30,9 +30,19 @@ enum {
GFX_NONE = 0,
GFX_INTERNAL,
GFX_CGA,
GFX_COMPAQ_CGA, /* Compaq CGA */
GFX_COMPAQ_CGA_2, /* Compaq CGA 2 */
GFX_COLORPLUS, /* Plantronics ColorPlus */
GFX_WY700, /* Wyse 700 */
GFX_MDA,
GFX_GENIUS, /* MDSI Genius */
GFX_HERCULES,
GFX_HERCULESPLUS,
GFX_INCOLOR, /* Hercules InColor */
GFX_EGA, /* Using IBM EGA BIOS */
GFX_COMPAQ_EGA, /* Compaq EGA */
GFX_SUPER_EGA, /* Using Chips & Technologies SuperEGA BIOS */
GFX_VGA, /* IBM VGA */
GFX_TVGA, /* Using Trident TVGA8900D BIOS */
GFX_ET4000, /* Tseng ET4000 */
GFX_ET4000W32_VLB, /* Tseng ET4000/W32p (Diamond Stealth 32) VLB */
@@ -41,75 +51,62 @@ enum {
GFX_BAHAMAS64_PCI, /* S3 Vision864 (Paradise Bahamas 64) PCI */
GFX_N9_9FX_VLB, /* S3 764/Trio64 (Number Nine 9FX) VLB */
GFX_N9_9FX_PCI, /* S3 764/Trio64 (Number Nine 9FX) PCI */
GFX_VIRGE_VLB, /* S3 Virge VLB */
GFX_VIRGE_PCI, /* S3 Virge PCI */
GFX_TGUI9440_VLB, /* Trident TGUI9440 VLB */
GFX_TGUI9440_PCI, /* Trident TGUI9440 PCI */
GFX_VGA, /* IBM VGA */
GFX_VGAEDGE16, /* ATI VGA Edge-16 (18800-1) */
GFX_VGACHARGER, /* ATI VGA Charger (28800-5) */
GFX_OTI067, /* Oak OTI-067 */
GFX_MACH64GX_ISA, /* ATI Graphics Pro Turbo (Mach64) VLB */
GFX_VGAWONDERXL, /* Compaq ATI VGA Wonder XL (28800-5) */
GFX_VGAWONDERXL24, /* Compaq ATI VGA Wonder XL24 (28800-6) */
GFX_MACH64GX_VLB, /* ATI Graphics Pro Turbo (Mach64) VLB */
GFX_MACH64GX_PCI, /* ATI Graphics Pro Turbo (Mach64) PCI */
GFX_CL_GD5429, /* Cirrus Logic CL-GD5429 */
GFX_VIRGEDX_VLB, /* S3 Virge/DX VLB */
GFX_VIRGEDX_PCI, /* S3 Virge/DX PCI */
GFX_PHOENIX_TRIO32_VLB, /* S3 732/Trio32 (Phoenix) VLB */
GFX_PHOENIX_TRIO32_PCI, /* S3 732/Trio32 (Phoenix) PCI */
GFX_PHOENIX_TRIO64_VLB, /* S3 764/Trio64 (Phoenix) VLB */
GFX_PHOENIX_TRIO64_PCI, /* S3 764/Trio64 (Phoenix) PCI */
GFX_INCOLOR, /* Hercules InColor */
GFX_COLORPLUS, /* Plantronics ColorPlus */
GFX_WY700, /* Wyse 700 */
GFX_GENIUS, /* MDSI Genius */
GFX_MACH64VT2, /* ATI Mach64 VT2 */
GFX_COMPAQ_EGA, /* Compaq EGA */
GFX_SUPER_EGA, /* Using Chips & Technologies SuperEGA BIOS */
GFX_COMPAQ_VGA, /* Compaq/Paradise VGA */
GFX_CL_GD5446, /* Cirrus Logic CL-GD5446 */
GFX_VGAWONDERXL, /* Compaq ATI VGA Wonder XL (28800-5) */
GFX_WD90C11, /* Paradise WD90C11-LR Standalone */
GFX_OTI077, /* Oak OTI-077 */
GFX_VGAWONDERXL24, /* Compaq ATI VGA Wonder XL24 (28800-6) */
GFX_STEALTH64_VLB, /* S3 Vision864 (Diamond Stealth 64) VLB */
GFX_STEALTH64_PCI, /* S3 Vision864 (Diamond Stealth 64) PCI */
GFX_PHOENIX_VISION864_VLB, /* S3 Vision864 (Phoenix) VLB */
GFX_PHOENIX_VISION864_PCI, /* S3 Vision864 (Phoenix) PCI */
GFX_RIVATNT, /* nVidia Riva TNT */
GFX_RIVATNT2, /* nVidia Riva TNT2 */
GFX_RIVA128, /* nVidia Riva 128 */
GFX_HERCULESPLUS,
GFX_VIRGEVX_VLB, /* S3 Virge/VX VLB */
GFX_VIRGEVX_PCI, /* S3 Virge/VX PCI */
GFX_VIRGEDX4_VLB, /* S3 Virge/DX (VBE 2.0) VLB */
GFX_VIRGEDX4_PCI, /* S3 Virge/DX (VBE 2.0) PCI */
GFX_OTI037, /* Oak OTI-037 */
GFX_TRIGEM_UNK, /* Unknown TriGem graphics card w/Hangeul ROM */
GFX_MIRO_VISION964, /* S3 Vision964 (Miro Crystal) */
#if defined(DEV_BRANCH) && defined(USE_CIRRUS)
GFX_CL_GD5422, /* Cirrus Logic CL-GD5422 */
GFX_CL_GD5429, /* Cirrus Logic CL-GD5429 */
GFX_CL_GD5430, /* Cirrus Logic CL-GD5430 */
GFX_CL_GD5434, /* Cirrus Logic CL-GD5434 */
GFX_CL_GD5436, /* Cirrus Logic CL-GD5436 */
GFX_CL_GD5440, /* Cirrus Logic CL-GD5440 */
GFX_TICF62011, /* TI CF62011 */
GFX_COMPAQ_CGA, /* Compaq CGA */
GFX_COMPAQ_CGA_2, /* Compaq CGA 2 */
GFX_CL_GD5446, /* Cirrus Logic CL-GD5446 */
#endif
#if defined(DEV_BRANCH) && defined(USE_RIVA)
GFX_RIVATNT, /* nVidia Riva TNT */
GFX_RIVATNT2, /* nVidia Riva TNT2 */
GFX_RIVA128, /* nVidia Riva 128 */
#endif
GFX_OTI067, /* Oak OTI-067 */
GFX_OTI077, /* Oak OTI-077 */
GFX_PVGA1A, /* Paradise PVGA1A Standalone */
GFX_WD90C11, /* Paradise WD90C11-LR Standalone */
GFX_WD90C30, /* Paradise WD90C30-LR Standalone */
GFX_PHOENIX_TRIO32_VLB, /* S3 732/Trio32 (Phoenix) VLB */
GFX_PHOENIX_TRIO32_PCI, /* S3 732/Trio32 (Phoenix) PCI */
GFX_PHOENIX_TRIO64_VLB, /* S3 764/Trio64 (Phoenix) VLB */
GFX_PHOENIX_TRIO64_PCI, /* S3 764/Trio64 (Phoenix) PCI */
GFX_VIRGE_VLB, /* S3 Virge VLB */
GFX_VIRGE_PCI, /* S3 Virge PCI */
GFX_VIRGEDX_VLB, /* S3 Virge/DX VLB */
GFX_VIRGEDX_PCI, /* S3 Virge/DX PCI */
GFX_VIRGEDX4_VLB, /* S3 Virge/DX (VBE 2.0) VLB */
GFX_VIRGEDX4_PCI, /* S3 Virge/DX (VBE 2.0) PCI */
GFX_VIRGEVX_VLB, /* S3 Virge/VX VLB */
GFX_VIRGEVX_PCI, /* S3 Virge/VX PCI */
GFX_STEALTH64_VLB, /* S3 Vision864 (Diamond Stealth 64) VLB */
GFX_STEALTH64_PCI, /* S3 Vision864 (Diamond Stealth 64) PCI */
GFX_PHOENIX_VISION864_VLB, /* S3 Vision864 (Phoenix) VLB */
GFX_PHOENIX_VISION864_PCI, /* S3 Vision864 (Phoenix) PCI */
#if defined(DEV_BRANCH) && defined(USE_TI)
GFX_TICF62011, /* TI CF62011 */
#endif
GFX_MAX
};
#define MDA ((gfxcard==GFX_MDA || gfxcard==GFX_HERCULES || \
gfxcard==GFX_HERCULESPLUS || gfxcard==GFX_INCOLOR || \
gfxcard==GFX_GENIUS) && \
#define MDA ((gfxcard>=GFX_MDA) && \
(gfxcard<=GFX_INCOLOR) && \
(romset<ROM_TANDY || romset>=ROM_IBMAT))
#define VGA (((gfxcard>=GFX_TVGA) && gfxcard!=GFX_COLORPLUS && \
gfxcard!=GFX_INCOLOR && gfxcard!=GFX_WY700 && \
gfxcard!=GFX_GENIUS && gfxcard!=GFX_COMPAQ_EGA && \
gfxcard!=GFX_SUPER_EGA && gfxcard!=GFX_HERCULESPLUS) && \
#define VGA ((gfxcard>=GFX_VGA) && \
(romset!=ROM_PC1640 && romset!=ROM_PC1512 && \
romset!=ROM_TANDY && romset!=ROM_PC200 && romset!=ROM_T3100E))

View File

@@ -198,8 +198,6 @@ file_dlg_w(HWND hwnd, WCHAR *f, WCHAR *fn, int save)
wcstombs(openfilestring, wopenfilestring, sizeof(openfilestring));
// pclog("File dialog return true\n");
pclog("Filter Index: %i\n", ofn.nFilterIndex);
return(0);
}