From bbef0fd1cd45db6f5492b5b294dc117516357feb Mon Sep 17 00:00:00 2001 From: SarahW Date: Mon, 20 Jan 2020 18:22:50 +0000 Subject: [PATCH] Added discrete AVGA2 card. --- src/ibm.h | 1 + src/vid_cl5429.c | 21 +++++++++++++++++++++ src/vid_cl5429.h | 1 + src/video.c | 1 + 4 files changed, 24 insertions(+) diff --git a/src/ibm.h b/src/ibm.h index b5d2c83..661d950 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -303,6 +303,7 @@ enum GFX_IM1024, /*Vermont Microsystems IM1024 */ GFX_EGAWONDER800, /*ATI EGA Wonder 800+*/ GFX_MYSTIQUE, /*Matrox Mystique*/ + GFX_AVGA2, /*Acumos AVGA2 / Cirrus Logic CL-GD5402*/ GFX_MAX }; diff --git a/src/vid_cl5429.c b/src/vid_cl5429.c index ebd3118..f94fddf 100644 --- a/src/vid_cl5429.c +++ b/src/vid_cl5429.c @@ -1886,6 +1886,10 @@ static void *cl_init(int type, char *fn, int pci_card) } +static void *avga2_init() +{ + return cl_init(CL_TYPE_AVGA2, "avga2vram.vbi", -1); +} static void *avga2_cbm_sl386sx_init() { return cl_init(CL_TYPE_AVGA2, "cbm_sl386sx25/c000.rom", -1); @@ -1911,6 +1915,10 @@ static void *gd5434_pb520r_init() return cl_init(CL_TYPE_GD5434, "pb520r/gd5434.bin", 3); } +static int avga2_available() +{ + return rom_present("avga2vram.vbi"); +} static int gd5429_available() { return rom_present("5429.vbi"); @@ -2034,6 +2042,19 @@ static device_config_t gd5434_config[] = } }; +device_t avga2_device = +{ + "AVGA2 / Cirrus Logic GD5402", + 0, + avga2_init, + gd5429_close, + avga2_available, + gd5429_speed_changed, + gd5429_force_redraw, + gd5429_add_status_info, + avga2_config +}; + device_t avga2_cbm_sl386sx_device = { "AVGA2 (Commodore SL386SX-25)", diff --git a/src/vid_cl5429.h b/src/vid_cl5429.h index 9398b27..7ba0941 100644 --- a/src/vid_cl5429.h +++ b/src/vid_cl5429.h @@ -1,3 +1,4 @@ +extern device_t avga2_device; extern device_t avga2_cbm_sl386sx_device; extern device_t gd5429_device; extern device_t gd5430_device; diff --git a/src/video.c b/src/video.c index b8afde8..0105b48 100644 --- a/src/video.c +++ b/src/video.c @@ -82,6 +82,7 @@ typedef struct static VIDEO_CARD video_cards[] = { + {"Acumos AVGA2 / Cirrus Logic CL-GD5402", "avga2", &avga2_device, GFX_AVGA2, VIDEO_FLAG_TYPE_SPECIAL, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}}, {"ATI Graphics Pro Turbo (Mach64 GX)", "mach64gx", &mach64gx_device, GFX_MACH64GX, VIDEO_FLAG_TYPE_SPECIAL, {VIDEO_BUS, 2, 2, 1, 20, 20, 21}}, {"ATI Video Xpression (Mach64 VT2)", "mach64vt2", &mach64vt2_device, GFX_MACH64VT2, VIDEO_FLAG_TYPE_SPECIAL, {VIDEO_BUS, 2, 2, 1, 20, 20, 21}}, {"ATI EGA Wonder 800+ (ATI-18800)", "egawonder800", &ati_ega_wonder_800_device, GFX_EGAWONDER800, VIDEO_FLAG_TYPE_SPECIAL, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}},