diff --git a/src/ibm.h b/src/ibm.h index 2bbc1ba9e..e4382fa90 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -465,6 +465,7 @@ enum GFX_HERCULESPLUS, GFX_RIVATNT2, + GFX_TRIGEM_UNK, GFX_MAX }; diff --git a/src/vid_vga.c b/src/vid_vga.c index e9f73cf16..67458e126 100644 --- a/src/vid_vga.c +++ b/src/vid_vga.c @@ -105,6 +105,31 @@ void *vga_init() return vga; } +void *trigem_unk_init() +{ + vga_t *vga = malloc(sizeof(vga_t)); + memset(vga, 0, sizeof(vga_t)); + + rom_init(&vga->bios_rom, "roms/ibm_vga.bin", 0xc0000, 0x8000, 0x7fff, 0x2000, MEM_MAPPING_EXTERNAL); + + svga_init(&vga->svga, vga, 1 << 18, /*256kb*/ + NULL, + vga_in, vga_out, + NULL, + NULL); + + io_sethandler(0x03c0, 0x0020, vga_in, NULL, NULL, vga_out, NULL, NULL, vga); + + io_sethandler(0x22ca, 0x0002, svga_in, NULL, NULL, svga_out, NULL, NULL, svga); + io_sethandler(0x22ce, 0x0002, svga_in, NULL, NULL, svga_out, NULL, NULL, svga); + io_sethandler(0x32ca, 0x0002, svga_in, NULL, NULL, svga_out, NULL, NULL, svga); + + vga->svga.bpp = 8; + vga->svga.miscout = 1; + + return vga; +} + /*PS/1 uses a standard VGA controller, but with no option ROM*/ void *ps1vga_init() { @@ -171,6 +196,17 @@ device_t vga_device = vga_force_redraw, vga_add_status_info }; +device_t trigem_unk_device = +{ + "VGA", + 0, + trigem_unk_init, + vga_close, + vga_available, + vga_speed_changed, + vga_force_redraw, + vga_add_status_info +}; device_t ps1vga_device = { "PS/1 VGA", diff --git a/src/video.c b/src/video.c index 674894ec0..9cd292101 100644 --- a/src/video.c +++ b/src/video.c @@ -91,9 +91,10 @@ static VIDEO_CARD video_cards[] = {"Phoenix S3 Trio64", &s3_phoenix_trio64_device, GFX_PHOENIX_TRIO64}, {"Plantronics ColorPlus", &colorplus_device, GFX_COLORPLUS}, {"S3 ViRGE/DX", &s3_virge_375_device, GFX_VIRGEDX}, - {"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA}, - {"Tseng ET4000AX", &et4000_device, GFX_ET4000}, {"Trident TGUI9440", &tgui9440_device, GFX_TGUI9440}, + {"Trident TVGA8900D", &tvga8900d_device, GFX_TVGA}, + {"TriGem Unknown Adapter", &trigem_unk_device, GFX_TRIGEM_UNK}, + {"Tseng ET4000AX", &et4000_device, GFX_ET4000}, {"VGA", &vga_device, GFX_VGA}, {"Wyse 700", &wy700_device, GFX_WY700}, {"", NULL, 0}