Commit Graph

36 Commits

Author SHA1 Message Date
OBattler
479ab87f17 EGA Render: Apply the (S)VGA Render blink fix by greasemonkey. 2024-08-08 00:56:19 +02:00
GreaseMonkey
9844cbc245 Add 8-dot hscroll compensation to EGA graphics modes
This is in lieu of whatever the correct emulation would be (as per the text modes).
Somehow I forgot to add this when reworking the fine scroll implementations.
2024-01-23 16:03:42 +13:00
GreaseMonkey
22ead81b80 Fixes for EGA scrolling 2024-01-09 17:20:31 +13:00
Jasmine Iwanek
367f3b574b sonarlint vid_ega_render.c 2023-07-31 15:20:29 -04:00
Jasmine Iwanek
ee695e71f9 More sonarlint work 2023-07-25 17:59:22 -04:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
Ben Russell
9e758ca0b0 vid_ega: Implement graphics blinking required for 640x350 mono graphics modes 2023-03-23 20:09:13 +13:00
Ben Russell
935d49da6c vid_ega: Hoist out + name chip register flags in renderers; Tweak graphics char writing loop 2023-03-23 20:03:21 +13:00
Ben Russell
240ecdfe5f vid_ega: Mask ma correctly in the text renderer
It was already masked correctly in the 4bpp graphics renderers, but now we get to mask it correctly in the text renderer
2023-03-23 17:10:45 +13:00
Ben Russell
0bed201e87 vid_ega: Merge text renderers together 2023-03-23 17:06:12 +13:00
Ben Russell
69c18755a4 vid_ega: Extend 4bpp renderer to handle CGA 2bpp chunky graphics; Remove 2bpp renderer
This also lets planes 2 and 3 be used.
2023-03-23 15:28:25 +13:00
Ben Russell
212e494328 vid_ega: Merge 4bpp graphics renderers together 2023-03-23 14:51:35 +13:00
Ben Russell
2a395efbc9 vid_ega: Fix address decoding for Odd/Even modes for the 4bpp gfx renderers
This, combined with the Odd/Even fixes from a previous commit, gets the 64KB 640x350 2bpp modes working correctly.
Relevant issue: #2944
2023-03-20 20:07:39 +00:00
Ben Russell
77ba033fd9 vid_ega: Fix CCLK/2 rendering in 4bpp graphics modes
Required for 64KB-variant 640x350 2bpp modes (BIOS modes 0x0F, 0x10).
This does need some address decoding fixes to break the 16K-word barrier, though - those are coming.
2023-03-20 19:36:38 +00: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
883e7c256a clang format in src/video (#2654) 2022-08-31 20:19:29 -03:00
Cacodemon345
8a3367ff6f Multi-monitor support (backend preparation part) 2022-07-03 01:18:23 +06:00
TC1995
7ca64ced86 EGA fixes to its renderer. 2022-06-26 23:16:44 +02:00
TC1995
dbea8ec715 EGA: Backported the SVGA remapping parts to EGA as it actually works better in some cases, e.g.: FantasyLand on EGA. 2022-06-12 20:03:34 +02:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05: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
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
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
OBattler
9911df5024 Various EGA-related clean-ups and fixes, and added EGA monitor type selection (ported from PCem);
Replaced the (S)VGA monitor/DAC sense with that from PCem, which, of all implementations I've tested, works best.
2018-01-24 23:15:00 +01:00
waltje
7c67e867c8 Major commit, cleaning a lot of old stuff.
IBM.H is gone, video stuff re-organized. Keyboard stuff reorganized.
Machines that have their own video, mouse and/or keyboard now have all this in their machine file.
Fixed and other cleanups here and there.
2017-11-05 02:00:50 -05:00
waltje
7f24ba9fe9 Another cleanup run. 2017-10-17 02:01:03 -04:00
waltje
c7cb446684 Another round of cleanups - the main code no longer refers to, let alone uses, anything in the platform folder - completely separated! 2017-10-11 05:43:09 -04:00
waltje
43b055b5ee Another massive cleanup run. Ibm.h no longer includes system header files. ROM loading simplified, and moved from mem.c to rom.c. Fixes in Makefile. Corrected mamy wrong includes. Removed old junk from days long gone. First phase of new SCAT chipset driver - no longer gives errors in BIOS, but NOT DONE YET. 2017-09-25 04:33:16 -04:00
c1091d83d3 Lowercase all CAPS to prevent case sensitive errors in non-Windows platforms 2017-08-27 04:33:47 +01:00