Commit Graph

60 Commits

Author SHA1 Message Date
GreaseMonkey
0848f4a38e Disable blink in 8bpp modes on MGA; Re-instate main 8bpp hires renderer
I don't actually know if 8bpp blink is a thing on a Matrox Millennium, but the video BIOS seems to act like it's not.
2023-12-17 08:46:12 +13:00
TC1995
1df37c2440 Temporarily added the older 8bpp highres render for the Matrox Millennium. 2023-12-16 20:21:57 +01:00
GreaseMonkey
44d70ab943 Rework (S)VGA renderer to be internally chunky + attempt to optimise for speed 2023-12-06 15:25:17 +13:00
OBattler
7b4a6a3388 Clean-ups and made the ET4000AX use the old way to check for 8 bpp modes, fixes the Windows 3.0 driver. 2023-11-26 22:15:28 +01:00
GreaseMonkey
c8c9fa2f91 Implement 4bpp graphics mode blink properly on VGA
Closes #3447
2023-11-23 13:12:09 +13:00
GreaseMonkey
7de7ea3fe1 Clean up unused variable 2023-11-23 10:08:52 +13:00
GreaseMonkey
81d285b883 Force 8bpp highres SVGA modes to "bypass" the shifter entirely
The current implementation still uses the shifter forced to Shift 256 mode to keep things generic, but we can always opt for a separate scanline renderer.
2023-11-23 10:04:04 +13:00
TC1995
a3fa181b01 8-bit renderer fix about the Tseng cards:
Seems the Tseng cards are as incompatible as the S3 cards in terms of pure IBM VGA emulation, especially the chain4 stuff, so accomodate the fix to the renderer. Fixes 8bpp rendering on Tseng cards when invoked.
2023-11-21 20:06:12 +01:00
GreaseMonkey
9903e12e69 (S)VGA: Update graphics mode blink behaviour to match something more feasible 2023-11-21 19:39:30 +13:00
GreaseMonkey
81b8150a6b (S)VGA: Increment CRTC address just before it needs to be used
This gives more likely behaviour when one loads more often than the address is incremented.
The behaviour matches an Intel GMA 4500MHD (2008) which is the earliest hardware I'm able to test right now.
2023-11-21 19:25:26 +13:00
GreaseMonkey
2166ae0fb7 Get S3 Trio working in mode 13h + Mode-X again
Outside of that, we're now using the remappers properly.
2023-11-21 16:55:54 +13:00
GreaseMonkey
cfda3e1cce Add 8bpp support to the 4bpp renderer (breaks S3 Trio)
It appears that the S3 Trio does something weird with its 8bpp modes.
Specifically, it seems to ignore some of the flags needed for dword mode.

I will keep looking into that and see if I can find a good solution.
2023-11-21 15:40:44 +13:00
GreaseMonkey
9703ccec45 Initial merge of VGA 2bpp/4bpp lo/hi res renderers
About half of it was taken from the EGA renderer.

Also, the "force_old_addr" hack is kept here for now.
2023-11-21 11:33:04 +13:00
Jasmine Iwanek
bc7cc2c14a sonarlint vid_svga_render.c 2023-07-31 14:53:40 -04:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04: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
a40630ba63 Even more tabs to spaces 2023-01-07 14:09:51 -05:00
Jasmine Iwanek
231cadb0a7 Fix Multiplication result converted to larger type from CodeQL 2022-12-23 14:22:17 -05:00
Jasmine Iwanek
883e7c256a clang format in src/video (#2654) 2022-08-31 20:19:29 -03:00
Adrien Moulin
d3e6d13a84 Fix stupid mistake in svga_render_blank 2022-08-09 01:37:29 +02:00
Adrien Moulin
ce95d2e7bd Optimize svga_render_overscan 2022-08-09 00:29:04 +02:00
Adrien Moulin
4cb84a3a80 Optimize svga_render_blank 2022-08-08 23:55:58 +02:00
OBattler
33c5f9397e (S)VGA renderer fixes. 2022-07-19 00:14:29 +02:00
OBattler
3bcb9f6310 Cleaned up the (S)VGA render code of excess CRTC checks. 2022-07-18 23:56:21 +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
TC1995
fee0ea1d24 Ported the x87 fix from the other emulator as well as the GUS one.
Fixed 15bpp mode in all cards.
2021-05-30 22:07:22 +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
OBattler
2758f3e4f5 Reverted the 256 color renderers back to normal. 2021-04-29 04:35:14 +02: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
TC1995
7bb51b4c7a Ported the latest Voodoo patches from PCem. 2020-11-18 00:21:07 +01:00
OBattler
43b6056d84 EGA and (S)VGA cards now correctly disable the display when CRTC 0x17 bit 7 is clear, also reduces resizes even further. 2020-07-20 04:34:47 +02:00
OBattler
de1cae40f7 The EGA and (S)VGA renders no longer draw a line's left and right overscan borders if the line is < 0. 2020-06-07 21:32:10 +02:00
TC1995
f317bf3690 Ported the Goldstar 286 machine from PCem alongside video fixes
and enhancements from greatpsycho.
2020-05-12 00:37:30 +02:00
OBattler
3027422e88 PCI graphics cards now correctly use PCI timings instead of VLB timings. 2020-05-06 00:23:07 +02:00
David Hrdlička
a505894a10 Move all include files to src/include
- 86Box's own headers go to /86box
- munt's public interface goes to /mt32emu
- all slirp headers go to /slirp (might want to consider using only its public inteface)
- single file headers from other projects go in include root
2020-03-29 19:53:29 +02:00
Daniel Gurney
0c509fd551 Remove version tree-wide 2020-03-25 00:46:02 +02:00
OBattler
490c04fcae Current WIP code. 2020-02-29 19:12:23 +01:00
OBattler
ac0a1ee327 Fixed EGA and (S)VGA pel panning, fixes games like Supaplex. 2019-11-19 19:18:44 +01:00
OBattler
9c42abf2bf Fixed EGA graphics modes and ported EGA 2bpp/4bpp word mode and 4bpp odd/even functionality to (S)VGA which should also support it. 2019-10-20 17:25:30 +02:00
OBattler
a495faec59 Direct3D in full-screen mode now transfers control of input to the full screen window, fixes #429;
Unified screenshot code and moved it to video.c, it is now independent of both renderer and platform;
The EGA/(S)VGA overscan now also works for CGA, PCjr, Tandy, and CGA-using Amstrads;
Fixed EGA/(S)VGA overscan operation so it works correctly with scrolling and panning;
Fixed 320x200x32K and 320x200x64K modes on the ET4000/W32p;
Fixed the Video 7 1024i chip ID and video memory options, fixes #431;
Fixed a banking bug in the S3 cards, fixes Windows 9x and NeoPaint.
2019-10-20 15:09:38 +02:00
OBattler
591cd2e019 The Cirrus Logic graphics cards now support the 8-byte latches, fixes 16 colors drivers;
The Cirrus Logic graphics cards now support the 15 bpp/palette mix, 8 bpp grayscale, and 8 bpp 3:3:2 RGB modes;
The makefiles now do -funroll_loops.
2019-10-01 15:14:51 +02:00
OBattler
552a87ea3d Added the IBM 5161 ISA expansion for PC and XT;
Cleaned up the parallel port emulation, added IRQ support, and made enabling/disabling per port;
Added the Award 430NX and the Intel Classic/PCI (Alfredo, 420TX);
Finished the 586MC1;
Added 8087 emulation;
Moved Cyrix 6x86'es to the Dev branch;
Sanitized/cleaned up memregs.c/h and intel.c/h;
Split the chipsets from machines and sanitized Port 92 emulation;
Added support for the 15bpp mode to the Compaq ATI 28800;
Moved the MR 386DX and 486 machines to the Dev branch;
Ported the new dynamic recompiler from PCem, but it remains in Dev branch until after v2.00;
Ported the new timer code from PCem;
Cleaned up the CPU table of unused stuff and better optimized its structure;
Ported the Open-XT and Open-AT from VARCem, the Open-AT is in the Dev branch;
Ported the XT MFM controller rewrite and adding of more controllers (incl. two RLL ones), from VARCem;
Added the AHA-1540A and the BusTek BT-542B;
Moved the Sumo SCSI-AT to the Dev branch;
Minor IDE, FDC, and floppy drive code clean-ups;
Made NCR 5380/53C400-based cards' BIOS address configurable;
Got rid of the legacy romset variable;
Unified (video) buffer and buffer32 into one and make the unified buffer 32-bit;
Added the Amstead PPC512 per PCem patch by John Elliott;
Switched memory mapping granularity from 16k to 4k (less than 1k not possible due to internal pages);
Rewrote the CL-GD 54xx blitter, fixes Win-OS/2 on the 54x6 among other thing;
Added the Image Manager 1024 and Professional Graphics Controller per PCem patch by John Elliott and work done on VARCem;
Added Headland HT-216, GC-205 and Video 7 VGA 1024i emulation based on PCem commit;
Implemented the fuction keys for the Toshiba T1000/T1200/T3100 enhancement;
Amstrad MegaPC does now works correctly with non-internal graphics card;
The SLiRP code no longer casts a packed struct type to a non-packed struct type;
The Xi8088 and PB410a no longer hang on 86Box when PS/2 mouse is not present;
The S3 Virge on BeOS is no longer broken (was broken by build #1591);
OS/2 2.0 build 6.167 now sees key presses again;
Xi8088 now work on CGA again;
86F images converted from either the old or new variants of the HxC MFM format now work correctly;
Hardware interrupts with a vector of 0xFF are now handled correctly;
OPTi 495SX boards no longer incorrectly have 64 MB maximum RAM when 32 MB is correct;
Fixed VNC keyboard input bugs;
Fixed AT RTC periodic interrupt - Chicago 58s / 73f / 73g  / 81 MIDI play no longer hangs with the build's own VTD driver;
Fixed mouse polling with internal mice - Amstrad and Olivetti mice now work correctly;
Triones ATAPI DMA driver now correctly reads a file at the end of a CD image with a sectors number not divisible by 4;
Compaq Portable now works with all graphics cards;
Fixed various MDSI Genius bugs;
Added segment limit checks and improved page fault checks for several CPU instructions - Memphis 15xx WINSETUP and Chicago 58s WINDISK.CPL no longer issue a GPF, and some S3 drivers that used to have glitches, now work correctly;
Further improved the 808x emulation, also fixes the noticably choppy sound when using 808x CPU's, also fixes #355;
OS/2 installer no logner locks up on splash screen on PS/2 Model 70 and 80, fixes #400.
Fixed several Amstead bugs, GEM no longer crashes on the Amstrad 1640, fixes #391.
Ported John Elliott's Amstrad fixes and improvement from PCem, and fixed the default language so it's correctly Engliish, fixes #278, fixes #389.
Fixed a minor IDE timing bug, fixes #388.
Fixed Toshiba T1000 RAM issues, fixes #379.
Fixed EGA/(S)VGA overscan border handling, fixes #378;
Got rid of the now long useless IDE channel 2 auto-removal, fixes #370;
Fixed the BIOS files used by the AMSTRAD PC1512, fixes #366;
Ported the Unicode CD image file name fix from VARCem, fixes #365;
Fixed high density floppy disks on the Xi8088, fixes #359;
Fixed some bugs in the Hercules emulation, fixes #346, fixes #358;
Fixed the SCSI hard disk mode sense pages, fixes #356;
Removed the AMI Unknown 386SX because of impossibility to identify the chipset, closes #349;
Fixed bugs in the serial mouse emulation, fixes #344;
Compiled 86Box binaries now include all the required .DLL's, fixes #341;
Made some combo boxes in the Settings dialog slightly wider, fixes #276.
2019-09-20 14:02:30 +02:00
TC1995
1d79b67528 Applied Greatpsycho's headland chipset patches to the main branch plus the Korean ET4000AX.
Applied newer patches of John Elliot's Toshiba T1000/T1200 implementation.
Added Trigem 286M and AMA932J motherboards.
2018-08-16 00:25:20 +02:00
OBattler
950ce8f5aa Added the 3Com 3C503 Network card;
Several bug fixes;
Preliminar addition of the SDL 2 renderer (does not yet work correctly in full screen mode);
SCSI devices no longer have configurable LUN's (this matches the configurability of real SCSI devices);
SCSI LUN's are now handed by the device's handler;
Removed all unused strings;
Removed some unused code files;
Significantly rewrote the bus mouse emulation.
2018-07-15 01:41:53 +02:00
OBattler
473fd383d2 Do not allow mouse capturing if no mouse configured, patch from VARCem;
Reimplemented saving of all the non-volatile things of the Toshiba T1000 and T1200;
Applied the latest T1200 patch from John Elliott;
Applied the latest ATI Korean VGA patch from greatpsycho.
2018-03-19 04:19:19 +01:00
OBattler
3b62e83315 Ported some IDE and ATAPI-related improvements from PCem;
Fixed the ATI 18800 emulation;
More tweaks to reduce RAM usage.
2018-03-15 22:57:24 +01:00
OBattler
67f6649a26 Applied the ATI Korean VGA patch from greatpsycho. 2018-03-12 15:19:36 +01:00