Commit Graph

59 Commits

Author SHA1 Message Date
OBattler
39d10899ac Sanitized some video code to avoid #include's inside headers, and added guards to include/86box/thread.h. 2023-10-09 20:14:03 +02: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
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
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
6c1e4a8e2c Some code smell fixes from sonarlint 2023-05-15 19:25:56 -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
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
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
bd75bc141a Header cleanups
Tabs to spaces
Consistency
2022-11-13 21:15:47 -05:00
Jasmine Iwanek
a04710b517 clang-format in src/win and other misc places 2022-07-27 17:27:51 -04: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
4628203c89 Fix compile. 2022-06-12 18:28:38 +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
d0335e9679 Initial emulation of the IBM 8514/A coprocessor for both the MCA and ISA buses.
Currently the GUI option is on the QT frontend.
2022-05-14 18:55:00 +02:00
Alexander Babikov
eba088c692 Remove trailing whitespace + indentation consistency fixes 2022-04-14 07:10:18 +05: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
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
Jasmine Iwanek
7fc893bdb0 Include guards on our headers 2022-02-18 19:42:21 -05:00
Jasmine Iwanek
23b84127cd Some video related cleanups 2022-01-30 02:11:21 -05:00
TC1995
a2be64dcb1 Added TVP3026 clock emulation and hooked up to the corresponding S3 cards needing it.
Added the SPEA Mercury Lite 928PCI-based card and its corresponding accel changes.
Restored the S3 ViRGE threaded-FIFO but with small changes.
2022-01-28 17:45:03 +01:00
TC1995
e29dafa17a Changes list 5:
Added the AT&T 2xc498 Precision RAMDAC.
Added 1MB configurations to the Cirrus Logic GD5434 as well as re-organized the memory size options of the other Cirrus cards.
Separated the et4000w32/i blitter from the standard et4000w32p blitter and properly implemented the X/Y Count route.
Added several Diamond Cirrus cards.
Added Number Nine S3 cards (868 and 968-based).
Fixed the WD90c30 1MB modes.
Re-organized the video card names.
2021-11-18 23:58:04 +01:00
OBattler
bad67c4f4d Merge remote-tracking branch 'origin/master' into feature/machine_and_kb 2021-10-26 01:59:08 +02: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
2825131722 Conflict resolution. 2021-10-06 18:16:56 +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
Miran Grča
c15a3fa841 Merge pull request #1687 from 86Box/master
Bring the branch up to part with master.
2021-09-13 23:30:02 +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
Miran Grča
c5864a46d8 Merge pull request #1676 from 86Box/master
Bring the branch up to par with master.
2021-09-08 00:08:23 +02:00
TC1995
4f5a78a8b9 Added a force byte mode variable to prevent dword mode from operating due to glitches in the S3 acceleration using said mode. 2021-09-06 13:03:50 +02:00
Miran Grča
b0ec4e1ece Merge pull request #1652 from 86Box/master
Brought the branch up to par with master.
2021-09-03 16:41:24 +02:00
TC1995
391c6a3571 S3 & TVP3026: Part 2.
Reworked the pix tranfer register to allow a word in a byte transfer.
Added an alternative bios selection for the SPEA Mirage 801 card (3.05I and 4.01, the latter being the default now.
Added the MiroCrystal 10SD 805 VLB, Phoenix 801 ISA, MiroVideo 40SV 968 VLB/PCI, SPEA Mercury P64V 968 PCI , SPEA Mirage P64 Trio64 VLB cards.
Removed some non-working S3 cards like the Trio64V+ VLB and Elsa Winner 2000 Pro X VLB (only PCI variants of these cards are now in)
2021-09-03 00:05:43 +02:00
OBattler
4f6df76f10 Revert "Revert "Merge branch 'feature/machine_and_kb' into master""
This reverts commit f2cd3756dd.
2021-07-04 17:40:39 +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
c703fedbe8 Ported the latest Voodoo changes from the other emulator. 2021-06-15 17:17:56 +02:00
OBattler
eef77b7c86 Added a way to force legacy mode as a temporary fix for the Voodoo Banshee/3 until there's a proper fix. 2021-06-04 02:41:13 +02:00
TC1995
963b530d10 Ported the Cirrus by16 fix. 2021-05-30 23:40:56 +02:00
TC1995
35b5301670 Fix build headers and dumb cirrus undeclared parts. 2021-05-30 02:01:16 +02:00
TC1995
d2c6452ff5 Reworked the HTVGA/Video7 clocks. Fixes the HT209 2401 error on MCA.
Fixed 16 color in the Realtek 3106 card.
Reworked the Sierra 1148x for the second time.
Registers that only exist on 928/80x and up are not used by the 911/924 anymore.
2021-05-20 20:57:54 +02:00
TC1995
1b642b4aba Port 0x105 on the ISA-based HT209 is only initialized from port 0x46e8 to avoid conflicts with the IBM PS/1 2011 and 2121's already existing initialization of the ports.
Reworked the Sierra SC1148x and AT&T49x ramdacs to use the RS2 signal when available.
Added the Realtek RTG3106 video card.
2021-05-12 18:51:02 +02:00
RichardG867
76395e9fb6 DPMS screen blanking support 2021-04-13 14:07:21 -03:00
TC1995
95976a2b26 Added Tseng specific variants of the GenDAC ramdac (ICS 53x1).
Fixed (at least in a more correct way) software cursor under OS/2 Warp with the s3 trio/vision drivers.
Implemented 128x128 sprite/hwcursor on the et4000w32 cards per manual.
2021-03-24 03:51:56 +01:00
OBattler
c68a36c2bb Renamed the RGB525 DAC file to the correct RGB528 name and remove excess pclog lines. 2020-12-22 14:58:28 +01:00
OBattler
645429e5f2 S3 Vision968 work. 2020-12-19 16:09:32 +01:00
OBattler
0ef52c4762 Disabled greatpsycho's (S)VGA clock skew in some situations, fixes #789 (needs a proper fix, but this will do as a band-aid). 2020-12-18 18:09:59 +01:00
OBattler
7a905168e2 And the same goes for the sequencer registers. 2020-12-13 13:41:32 +01:00