1. The passthrough from VGA to 8514/A and/or 8514/A to VGA no longer relies on hackish places where to switch from/to, instead, relying on port 0x3c3 of VGA doing so (though the Mach8/32 still needs some places where to manually switch from/to, mainly the MCA one when configuring the EEPROM). 2. Implemented the MCA behalf of the Mach32 and its corresponding reset function. 3. Properly implemented (more or less) true color, including 24-bit BGR rendering 4. Other fixes such as color patterns and mono patterns being more correct than before in various operating systems and in 24-bit true color. 5. Implemented the onboard Mach32 video of the IBM PS/ValuePoint P60 machine. 6. Made the onboard internal video detect when it's 8514/A compatible or not (CGA/EGA/MDA/VGA/etc.). If the former is selected, then the video monitor flag is used instead (for QT). 7. The TGUI9400 and 9440, if on VLB, now detect the right amount of memory if on 2MB. 8. Initial implementation of the ATI 68875 ramdac used by the Mach32 and made the ATI 68860 8514/A aware when selected with the Mach32AX PCI. 9. Separated the 8514/A ramdac ports from the VGA ramdac ports, allowing seamless transition from/to 8514/A/VGA. 10. Fixed a hdisp problem in the ET4000/W32 cards, where it was doubling the horizontal display in 15bpp+ graphics mode. 11. Removed the 0x3da/0x3ba port hack that was on the Mach8/32 code, relying on the (S)VGA core instead. 12. Reworked and simplified the TGUI9440 pitch register based on logging due to no documentation at all.
88 lines
2.8 KiB
C
88 lines
2.8 KiB
C
/*
|
|
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
|
* running old operating systems and software designed for IBM
|
|
* PC systems and compatibles from 1981 through fairly recent
|
|
* system designs based on the PCI bus.
|
|
*
|
|
* This file is part of the 86Box distribution.
|
|
*
|
|
* SVGA renderers.
|
|
*
|
|
*
|
|
*
|
|
* Authors: Sarah Walker, <https://pcem-emulator.co.uk/>
|
|
* Miran Grca, <mgrca8@gmail.com>
|
|
*
|
|
* Copyright 2008-2018 Sarah Walker.
|
|
* Copyright 2016-2018 Miran Grca.
|
|
*/
|
|
|
|
#ifndef VIDEO_SVGA_RENDER_H
|
|
#define VIDEO_SVGA_RENDER_H
|
|
|
|
extern int firstline_draw;
|
|
extern int lastline_draw;
|
|
extern int displine;
|
|
extern int sc;
|
|
|
|
extern uint32_t ma;
|
|
extern uint32_t ca;
|
|
extern int con;
|
|
extern int cursoron;
|
|
extern int cgablink;
|
|
|
|
extern int scrollcache;
|
|
|
|
extern uint8_t edatlookup[4][4];
|
|
|
|
void svga_recalc_remap_func(svga_t *svga);
|
|
|
|
void svga_render_null(svga_t *svga);
|
|
void svga_render_blank(svga_t *svga);
|
|
void svga_render_overscan_left(svga_t *svga);
|
|
void svga_render_overscan_right(svga_t *svga);
|
|
void svga_render_text_40(svga_t *svga);
|
|
void svga_render_text_80(svga_t *svga);
|
|
void svga_render_text_80_ksc5601(svga_t *svga);
|
|
|
|
void svga_render_2bpp_lowres(svga_t *svga);
|
|
void svga_render_2bpp_highres(svga_t *svga);
|
|
void svga_render_2bpp_headland_highres(svga_t *svga);
|
|
void svga_render_4bpp_lowres(svga_t *svga);
|
|
void svga_render_4bpp_highres(svga_t *svga);
|
|
void svga_render_8bpp_lowres(svga_t *svga);
|
|
void svga_render_8bpp_highres(svga_t *svga);
|
|
void svga_render_8bpp_tseng_lowres(svga_t *svga);
|
|
void svga_render_8bpp_tseng_highres(svga_t *svga);
|
|
void svga_render_8bpp_gs_lowres(svga_t *svga);
|
|
void svga_render_8bpp_gs_highres(svga_t *svga);
|
|
void svga_render_8bpp_rgb_lowres(svga_t *svga);
|
|
void svga_render_8bpp_rgb_highres(svga_t *svga);
|
|
void svga_render_15bpp_lowres(svga_t *svga);
|
|
void svga_render_15bpp_highres(svga_t *svga);
|
|
void svga_render_15bpp_mix_lowres(svga_t *svga);
|
|
void svga_render_15bpp_mix_highres(svga_t *svga);
|
|
void svga_render_16bpp_lowres(svga_t *svga);
|
|
void svga_render_16bpp_highres(svga_t *svga);
|
|
void svga_render_24bpp_lowres(svga_t *svga);
|
|
void svga_render_24bpp_highres(svga_t *svga);
|
|
void svga_render_32bpp_lowres(svga_t *svga);
|
|
void svga_render_32bpp_highres(svga_t *svga);
|
|
void svga_render_ABGR8888_lowres(svga_t *svga);
|
|
void svga_render_ABGR8888_highres(svga_t *svga);
|
|
void svga_render_RGBA8888_lowres(svga_t *svga);
|
|
void svga_render_RGBA8888_highres(svga_t *svga);
|
|
|
|
void ibm8514_render_8bpp(svga_t *svga);
|
|
void ibm8514_render_15bpp(svga_t *svga);
|
|
void ibm8514_render_16bpp(svga_t *svga);
|
|
void ibm8514_render_24bpp(svga_t *svga);
|
|
void ibm8514_render_BGR(svga_t *svga);
|
|
void ibm8514_render_32bpp(svga_t *svga);
|
|
void ibm8514_render_ABGR8888(svga_t *svga);
|
|
void ibm8514_render_RGBA8888(svga_t *svga);
|
|
|
|
extern void (*svga_render)(svga_t *svga);
|
|
|
|
#endif /*VID_SVGA_RENDER_H*/
|