From 94448b885b893a626d9375c7c23f53a93e28e651 Mon Sep 17 00:00:00 2001 From: SarahW Date: Tue, 8 Aug 2017 22:04:22 +0100 Subject: [PATCH] Added Olivetti GO481 graphics card (PVGA1A). Patch from ruben_balea. --- src/ibm.h | 1 + src/vid_paradise.c | 25 ++++++++++++++++++++++++- src/vid_paradise.h | 1 + src/video.c | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ibm.h b/src/ibm.h index 67f98ac..e6c8cf3 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -464,6 +464,7 @@ enum GFX_WY700, /* Wyse 700 */ GFX_GENIUS, /* MDSI Genius */ GFX_MACH64VT2, /*ATI Mach64 VT2*/ + GFX_OLIVETTI_GO481, /*Olivetti GO481 PVGA1A*/ GFX_MAX }; diff --git a/src/vid_paradise.c b/src/vid_paradise.c index 6e12061..f4a3776 100644 --- a/src/vid_paradise.c +++ b/src/vid_paradise.c @@ -1,6 +1,6 @@ /*Paradise VGA emulation - PC2086, PC3086 use PVGA1A + PC2086, PC3086, GO481 use PVGA1A MegaPC uses W90C11A */ #include @@ -350,6 +350,18 @@ static void *paradise_wd90c11_megapc_init() return paradise; } +static void *paradise_pvga1a_oli_go481_init() +{ + paradise_t *paradise = paradise_pvga1a_init(); + + if (paradise) + rom_init_interleaved(¶dise->bios_rom, + "oli_go481_lo.bin", + "oli_go481_hi.bin", + 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); + return paradise; +} + void paradise_close(void *p) { paradise_t *paradise = (paradise_t *)p; @@ -413,3 +425,14 @@ device_t paradise_wd90c11_megapc_device = paradise_force_redraw, paradise_add_status_info }; +device_t paradise_pvga1a_oli_go481_device = +{ + "Paradise PVGA1A (Olivetti GO481)", + 0, + paradise_pvga1a_oli_go481_init, + paradise_close, + NULL, + paradise_speed_changed, + paradise_force_redraw, + paradise_add_status_info +}; diff --git a/src/vid_paradise.h b/src/vid_paradise.h index e25d5b3..c007f5a 100644 --- a/src/vid_paradise.h +++ b/src/vid_paradise.h @@ -1,3 +1,4 @@ extern device_t paradise_pvga1a_pc2086_device; extern device_t paradise_pvga1a_pc3086_device; extern device_t paradise_wd90c11_megapc_device; +extern device_t paradise_pvga1a_oli_go481_device; diff --git a/src/video.c b/src/video.c index 2a1c8e1..b66b1fc 100644 --- a/src/video.c +++ b/src/video.c @@ -67,6 +67,7 @@ static VIDEO_CARD video_cards[] = {"MDSI Genius", "genius", &genius_device, GFX_GENIUS}, {"Number Nine 9FX (S3 Trio64)", "n9_9fx", &s3_9fx_device, GFX_N9_9FX}, {"OAK OTI-067", "oti067", &oti067_device, GFX_OTI067}, + {"Olivetti GO481 (Paradise PVGA1A 256Kb)", "olivetti_go481", ¶dise_pvga1a_oli_go481_device, GFX_OLIVETTI_GO481}, {"Paradise Bahamas 64 (S3 Vision864)", "bahamas64", &s3_bahamas64_device, GFX_BAHAMAS64}, {"Phoenix S3 Trio32", "px_trio32", &s3_phoenix_trio32_device, GFX_PHOENIX_TRIO32}, {"Phoenix S3 Trio64", "px_trio64", &s3_phoenix_trio64_device, GFX_PHOENIX_TRIO64},