Commit Graph

298 Commits

Author SHA1 Message Date
OBattler
41ba2e4e34 Removed a piece of dead code from the CL-GD 54xx code. 2020-01-14 20:56:08 +01:00
OBattler
0371dc9664 The OAK OTi graphic card code no longer loads the ROM if the ROM file name pointer is NULL. 2020-01-14 20:51:06 +01:00
OBattler
c09acf597d Fixed the size of the bitmap_t.line array, fixes out-of-bounds acceses. 2020-01-14 19:42:11 +01:00
OBattler
4076f4b671 Fixed a mistake in the Cirrus Logic CL-GD 54xx code that was preventing the CL-GD 5446 from working on NT 5.x. 2020-01-11 22:33:34 +01:00
OBattler
f12d9c14db Ported the (S)VGA linear read latch fix from PCem. 2019-12-28 05:51:22 +01:00
OBattler
1d41f99dcf Fixed the ATi Mach64 hardware cursor. 2019-12-28 05:50:22 +01:00
OBattler
88b9978fae Introduced video double-buffering (so that the render buffer is no longer the same as the interim buffer) and made SDL (Hardware) auto-hint the renderer per the suggestion and code by Agetian. 2019-12-06 03:50:54 +01:00
OBattler
66af1dde7e Fixed the MDA flickering. 2019-12-06 02:58:23 +01:00
OBattler
e121515458 Fixed the Video 7 / HT-2xx code so that it compiles again. 2019-12-04 07:36:08 +01:00
OBattler
70cfb9d79f Various (S)VGA and Cirrus Logic fixes. 2019-12-04 07:20:58 +01:00
OBattler
ac0a1ee327 Fixed EGA and (S)VGA pel panning, fixes games like Supaplex. 2019-11-19 19:18:44 +01:00
OBattler
d3bdee4ae1 Fixed the video RAM addresses in the text modes on the Sigma Color 400. 2019-11-08 23:45:05 +01:00
OBattler
1a9b46b829 Removed the empty config structures for the PGC and the Image Manager 1024. 2019-11-04 22:18:13 +01:00
OBattler
ca58ed4456 Fixed a bug in the PGC/Image Manager 1024 text modes. 2019-11-04 22:14:47 +01:00
OBattler
6f1c838496 The S3 cards now no longer do mixing or ROP's for PIX_TRANS reads. 2019-10-31 18:14:04 +01:00
OBattler
39a635d6e1 Fixed S3 through the plane PIX_TRANS reads. 2019-10-30 01:27:34 +01:00
OBattler
995fbaa66a (S)VGA 16-bit and 32-bit linear reads now correctly use the read bank and not the write bank. 2019-10-21 21:19:23 +02:00
OBattler
af420d19d3 The screenshot code now only decreases the queue counter if buffer32 is NULL. 2019-10-20 22:09:08 +02: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
2636ff2abf Fixed the Hercules memory mapping, fixes #419. 2019-10-02 21:19:46 +02:00
OBattler
2c2554061c Removed an unused array and its initialization from video/video.c. 2019-10-01 22:15:25 +02:00
OBattler
8d28b9e0c5 Changed the Toshiba T1000/T1200 init function to load fonts in full 2048-byte mode, fixes #420. 2019-10-01 21:36:27 +02:00
OBattler
c7b676dfef Fixed some newly introduced Cirrus Logic bugs. 2019-10-01 16:21:35 +02:00
OBattler
09142d0365 Removed the non-working standalone HT-216 that should not have been there. 2019-10-01 15:50:30 +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
a2755f0461 Fixed Cirrus Logic video to CPU (mem sys dest) blits and the operation of non-DWORD-granularity color expand CPU to video (mem sys src) blit, fixes OS/2 on the CL-GD 5426/28. 2019-09-30 14:14:22 +02:00
OBattler
ce907f89e3 The Cirrus Logic graphics cards now correctly disable MMIO if bit 0 of sequencer register 7 is clear, fixes #352. 2019-09-29 17:45:29 +02:00
OBattler
33094a164d Fixed EGA display broken by an earlier commit, fixes #417. 2019-09-29 10:32:03 +02:00
OBattler
984db93947 Implemented video to CPU (mem sys dest) blits on the Cirrus Logic CL-GD 54xx graphic card, fixes #329. 2019-09-29 08:37:33 +02:00
OBattler
6627282efb Implemented software-requested DMA block transfers, fixes #405, and also fixes UMBPCI's DMACHK ISA DMA tests;
Reworked a few things and re-implemented memory write protection in the SCAT emulation, to require less unusual mappings;
Removed two files that should not be there;
Made sure all graphics cards' memory mappings are mapped as MEM_MAPPING_EXTERNAL;
Added MEM_MAPPING_ROMCS flag to signal that a mapping responds to MEMCS* and made the BIOS and Intel flash mappings use it.
2019-09-28 17:32:05 +02:00
OBattler
88a619fd47 Added more sanity checks to the CGA, EGA, and SVGA polls, fixes #399. 2019-09-26 16:00:43 +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
driver1998
fecbec13cf Use _M_IX86 and _M_X64 to indicate MSVC x86/x64
_WIN32 is defined on ARM MinGW as well, which breaks current assumptions
2019-03-20 02:00:12 +08:00
OBattler
c1f18d9abc More 808x fixed - fixed (kind of) the 8086 lock ups and the DRAM refresh wait states, also further fixed (and cleaned up) prefetch queue operation, applied a few warning fixes, and fixed the behavior of PUSH SP - anything that uses it to tell 808x apart from 286 is now fixed;
Re-added the higher-clocked 8088's;
Fixed PIT timings for 808x CPU's that don't run off an 14.3 MHz crystal;
Fixed CGA cursor half blink rate setting - fixes insane cursor blinking speed in several cases;
DMA now issues DMA refresh DRAM states on every channel;
Gave the 1982 years to the previously emulated PC and XT's names, and added the 1981 IBM PC and 1986 IBM XT;
Redid the PPI DIP switch redout for the PC/XT keyboard controller;
Fixed a segmentation fault in hdc_ide.c that tended to occur on hard reset after switching machines;
Implemented the port 3B8 color disable on the Hercules, Hercules Plus, and Hercules InColor cards;
Fixed the joystick configuration dialog strings;
Fixed a problem that would have prevented win_sdl.c from compiling with logging enabled.
2019-02-11 01:33:15 +01:00
OBattler
46d0ed2baa Rewritten 808x CPU emulation core based on reenigne's XTCE, VisiOn, SnatchIt, and 8088 MPH now work correctly;
Fixed PC speaker sound volume in PIT mode 0;
A few CPU emulation clean-ups;
Hard disk controller changing redone in a less messy way;
Re-added the long-missing key send delay handling to the XT keyboard handler;
Fixed a bug that was causing SLiRP not to work when compiled with MingW/GCC 7.3.0-2 or newer;
Some serial mouse and port fixes;
A lot of changes to printer emulation, mostly based on DOSBox-X;
Printer PNG writer now uses statically linked libpng;
Added support for the HxC MFM floppy image format and upped 86F format version to 2.12;
Ported various things from PCem and some from VARCem;
Added the S3 86c801/805 emulation (patch from TheCollector1995);
Fixed and renamed the EGA monitor options;
Better synchronized the 808x to the PIT and the CGA;
Fixed the CGA wait state calculation;
Cleaned up some things in mem.c;
Fixed some things in the floppy emulation to make VisiOn get the correct errors from the copy protection disk;
Fixed several renderer-related bugs, including the SDL2 renderer's failure to take screenshots;
The Jenkins builds are now compiled with MingW/GCC 7.4.0-1 and include all the required DLL's.
2019-02-06 03:34:39 +01:00
TC1995
96ccd426ec Applied the bug fix from John Elliot regarding the Sigma Color 400. 2018-11-03 12:45:04 +01:00
OBattler
14e5c4cc09 A small bugfix for the Hercules blend and a variable move. 2018-11-01 10:52:27 +01:00
OBattler
44840a2f79 Small fix in video/video.c - moved a variable to the top. 2018-10-28 08:28:08 +01:00
OBattler
3d9f770603 Implemented the Hercules graphics mode blend. 2018-10-28 08:26:07 +01:00
OBattler
be67f6a9b5 Fixed some graphics modes on all S3 ViRGE's. 2018-10-27 04:47:49 +02:00
OBattler
16480d27ce Fixed the overscan on the Sigma Color 400. 2018-10-23 23:04:11 +02:00
OBattler
14095aab59 Fixed another bug in the Sigma Color 400 - now it no longer ignores sigma->palette. 2018-10-23 01:33:48 +02:00
OBattler
a729b46a02 Fixed the colors on the Sigma Color 400 (was a bug with the adaptation to 86Box) and made it no longer vertically double the screen when the height is more than 250 lines. 2018-10-23 00:08:46 +02:00
OBattler
54aca15a8b Added the Sigma Color 400, ported from PCem patch by John Elliott;
Spread the logging changes to machine files and added a missing log toggle to Makefile.local.
2018-10-22 04:22:00 +02:00
OBattler
86616cd5fb Slight fixes to CL-GD 54xx and generic (S)VGA memory read/write code - fixes E-Ten 24x24 driver (and probably more) on CL-GD and even the Tridents (though the second half of the screen is glitched on Tridents, which is an interlace bug and needs to be looked into). 2018-10-21 20:07:00 +02:00
OBattler
58ea2b549e The BT-48x RAMDAC now AND's the cursor data index with 0xFF if the cursor is 32x32. 2018-10-19 20:37:00 +02:00
OBattler
a8d8897f85 Fixed BT48x RAMDAC cursor reading. 2018-10-19 20:11:14 +02:00
OBattler
cfc626f111 Change to logging - when logging is disabled, the logging functions are now #define'd to nothing, so the compiler ignores the lines that call them completely, seems to slightly speed up the emulator; note that the logging in vid_table.c has not been changed yet, because this file on my local tree currently contains other WIP changes. 2018-10-19 00:39:32 +02:00
OBattler
b8d3992c07 Fixed some CD-ROM-related bugs;
Added sanity checks to the device close functions of the Hercules family graphics cards;
Cleaned up, fixed the bugs in, and reworked the implementation of the Adaptec/BusLogic BIOS command handler;
Removed some scsi_device.c functions that have now become useless;
Removed some excess stuff from pc_init_modules().
2018-10-11 10:34:12 +02:00