Commit Graph

136 Commits

Author SHA1 Message Date
Jasmine Iwanek
506d548b38 More linting in src/video 2023-08-23 00:50:52 -04:00
Alexander Babikov
ef631a8133 8514/A and XGA handling refactor:
* separate (ibm8514|xga)_enabled into (ibm8514|xga)_standalone_enabled
  and (ibm8514|xga)_active, the former being enabled only for standalone
  8514/A or XGA cards, the latter for all 8514/A and XGA-capable cards
  and not saved into the config file;
* remove (ibm8514|xga)_has_vga and replace all uses of it with
  (ibm8514|xga)_standalone_enabled;
* Qt UI: the checkboxes for standalone 8514/A and XGA are now correctly
  grayed out if an (S)VGA card with 8514/A or XGA capability is selected,
  including cases when the card is an internal/onboard one; said cards are
  now no longer appear as SVGA multi-monitor compatible.
2023-08-22 23:48:32 +05:00
Jasmine Iwanek
bd6508350b Yet more tabs to spaces 2023-08-15 13:28:04 -04:00
TC1995
59811075db New batch of ATI Mach8/32 changes:
1. Hopefully fixed the passthrough stuff for good and fixed typo's in the IBM 8514/A poll function about the cursor.
2. Eliminated the ibm8514_on global variable in favor of a struct variable to be consistent with XGA.
2023-08-15 00:11:56 +02:00
Jasmine Iwanek
02e41927e3 Dribs and drabs which have escaped 2023-08-12 13:07:00 -04:00
TC1995
f240e8cb0c Video changes:
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.
2023-08-12 00:00:46 +02:00
Jasmine Iwanek
478aa11172 sonarlint vid_svga.c 2023-07-31 14:58:27 -04:00
OBattler
656805026c Some adjustments to vid_svga.c, fixes the Voodoo 3 2048x1536 mode. 2023-07-30 23:37:21 +02:00
Jasmine Iwanek
ee695e71f9 More sonarlint work 2023-07-25 17:59:22 -04:00
TC1995
cb06b9e78f Video features and fixes:
Added the Mach8 and Mach32 ISA/VLB/PCI cards (initial implementation and MCA coming soon for the Mach32) and their corresponding EEPROM's.
Added INMOS XGA ISA card and updated the SVGA core to reflect its mapping as well as the Mach8/32 mapping when in 8514 monitor mode.
Mark the XGA button as already checked and locked when a standalone XGA BIOS card is present like the INMOS one. (QT only)
Same concept as above, but applies to the Mach8 and 32 for the 8514 option as well. (QT only)
2023-07-14 23:38:04 +02:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
TC1995
a77271cfa6 Accelerator fixes part 1:
XGA: Fix crash when (S)VGA cards not selected as the primary display (e.g.: EGA, CGA. etc).
Better handling of the VGA on/off passthrough (vga_on variable).
MCA side: to avoid lfb issues, bit 0 of POS4 will be always enabled regardless of the ram size (most software uses the >16MB memory method).
Better handling of the BIOS ROM mapping and Memory Mapped I/O during the MCA PS/2 POST and resets, fixes 40 25 hang (once and for all).
Re-organized the ROM loading in ISA mode.
2023-05-05 19:08:49 +02:00
Jasmine Iwanek
610401de7a Yet more clang-formatting 2023-02-28 23:53:57 -05:00
OBattler
b67c3c41e1 Fixed (S)VGA timings, according to tests by Sergi. 2023-02-05 17:16:53 +01:00
Cacodemon345
7898109b66 Add SVGA multi-monitor support
Cirrus Logic CL-GD5436/CL-GD5446 works as secondary video adapters
2023-01-22 16:50:21 +06:00
Jasmine Iwanek
1860700eab Fix some small issues 2023-01-07 17:02:23 -05:00
Jasmine Iwanek
3fe4f75108 A bit more clang-format 2022-11-19 11:53:07 -05:00
OBattler
27ebb27db7 Makefile.mingw corrections and made the code pass much stricter checks (now mandated by Makefile.mignw) to ensure GCC 14 readiness. 2022-11-17 22:44:06 +01:00
Jasmine Iwanek
6919451ae4 Fix string offsetting 2022-11-09 23:19:17 -05:00
Jasmine Iwanek
921af7000e Various bits from M&K 2022-11-06 18:54:39 -05:00
Jasmine Iwanek
aa2c07bed2 Random header cleanups I noticed while porting things 2022-11-05 22:12:35 -04:00
Jasmine Iwanek
883e7c256a clang format in src/video (#2654) 2022-08-31 20:19:29 -03:00
TC1995
43952325ba Fixed initialized 8-bit blits for OS/2 2.0 Limited Availability (6H.177) and other builds before GA/RTM. 2022-08-09 23:21:56 +02:00
OBattler
184dc4c5f2 And in video/vid_svga.c. 2022-07-19 23:52:55 +02:00
OBattler
3bcb9f6310 Cleaned up the (S)VGA render code of excess CRTC checks. 2022-07-18 23:56:21 +02:00
Cacodemon345
431f1de906 Merge branch '86Box:master' into multimonitor-take2-ui 2022-07-05 18:57:57 +06:00
TC1995
4417532851 Forgot to update the svga core source file. 2022-07-04 17:36:47 +02:00
Cacodemon345
8a3367ff6f Multi-monitor support (backend preparation part) 2022-07-03 01:18:23 +06:00
TC1995
9e44719f13 Added initial (and a bit buggy on OS/2, so use 8514/A on it instead) emulation of XGA for both MCA and ISA buses. 2022-06-17 21:26:26 +02:00
TC1995
da273446d1 8514/A: Pitch no longer hardcoded to 1024, fixes 640x480x256 resolutions.
8514/A: More fixes to the accelerated engine, mainly in paintbrush (blackness brush).
SVGA: Preparation of the next batch.
2022-06-12 17:31:54 +02:00
TC1995
1ac46d792f Fixed the 8514/A to VGA soft reset and made the vga_on variable a global one to make sure it's used by the soft reset.
Updated copyright holder that was accidentally reverted while committing the IBM 8514/A source files.
2022-05-19 20:07:06 +02:00
TC1995
4af6b1dcad Compile fix (I didn't commit the svga changes, oops). 2022-05-14 19:26:41 +02:00
TC1995
c3c7864bd6 Added a legacy way to address some issues with the SVGA scrolling and such (such as Pinball Illusions on S3 cards, including the ViRGE). 2022-03-02 16:18:58 +01:00
Jasmine Iwanek
f18da85438 A few lconsistency changes form M&K branch 2022-02-20 19:11:58 -05:00
Jasmine Iwanek
8597e4e4d7 Merge branch 'master' into more-updates 2022-02-20 16:28:50 -05:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
OBattler
f19aaa14ae Fixed three instances of undefined behavior. 2022-02-20 20:30:20 +01:00
OBattler
bff29cc69d Committed possible EGA and (S)VGA fix. 2022-02-11 00:15:11 +01:00
TC1995
61273f5c1f Video changes:
Improved the banking of the ATI 28800-5 cards (VGA Charger and VGA Wonder XL).
Improved the skew and horizontal display of some of the ET4000W32P cards as well as the cursor.
Made the Oak OTI 077 and PVGA WD90c30 cards use the Sierra 11487 (actually a clone is used in the real cards).
For the WD90c30, changed the way the hack is involved.
Reverted some changes of the S3 Vision/Trio that originally made glitches, now the glitches are gone and the accelerator renders fine.
Re-organized the Sierra 1148x RAMDAC's and added the 11486 (Mark 1).
MCA SVGA cards use the full 32-bit mapping.
2021-10-24 19:06:05 +02:00
OBattler
b7f5d4a773 Video 7 fixes, fixes RAMDAC 6-bit/8-bit switching on the Radius SVGA MultiView. 2021-10-06 18:12:22 +02:00
OBattler
f27fec1740 Removed EGA/(S)VGA render wake-up on zero-sized blit and fixed the last compile-breaking mistake in the Unix SDL code. 2021-09-13 23:28:00 +02:00
OBattler
96faa28eeb Removed the useless y1 and y2 parameters from the renderers' blit functions (and other places). 2021-09-13 23:19:10 +02:00
Daniel Gurney
f2cd3756dd Revert "Merge branch 'feature/machine_and_kb' into master"
This reverts commit 6604a29d7e, reversing
changes made to 1d7fca0abd.
2021-07-04 18:22:52 +03:00
OBattler
fd4817a87b All the current WIP work (warning: the PIT is currently using some temporary test rewrite that is going to be undone). 2021-06-29 19:11:19 +02:00
TC1995
963b530d10 Ported the Cirrus by16 fix. 2021-05-30 23:40:56 +02:00
TC1995
d63ce5ab82 Port of the reworked svga memory addressing, normal chain4 mapping and ma13/14 mapping for non-CGA modes.
Fixed ET4000/W32 (without letters) hardware cursor.
Fixed non-interlaced 1280x1024x8bpp Cirrus mode in the 5434.
Added a note regarding the Radius (HT209) 8bpp render.
Reworked the TGUI9440, but still WIP.
2021-05-30 01:52:43 +02:00
RichardG867
b2dd4fde07 Fix DPMS text not going away on reset 2021-04-14 16:09:08 -03:00
RichardG867
76395e9fb6 DPMS screen blanking support 2021-04-13 14:07:21 -03:00
OBattler
e045df2b50 (S)VGA clean-ups and fixes (some parts of the COPPER demo should now work), and fixed the graphics modes on the ICS5341. 2021-03-24 19:35:07 +01:00
OBattler
da1de8aaf5 40x25 text mode and Cardex ET4000/w32p 80x25 text mode now actually fixes. 2020-12-20 21:14:24 +01:00