Added a timer to improve perfomance of the 3D engine.
Made the Trio3D/2X available for all.
Reserved bit 2 of CR33 is now always set to make sure Win95's Trio3d/2X drivers work along with a workaround for the memory size.
Added preliminary DMA bus master capabilities.
Fixed Chicago 73x (73f/g and 81)'s width/pitch in 15bpp mode using its built-in drivers at 800x600 using the 928.
Vastly improved implementation of the Short Stroke Vectors.
Removed threading for FIFO mode in the cards using the 964 chips and up.
Implementation of the non-threaded FIFO for cards using the 964 chips and up. Should fix most remaining wallpaper issues with those chips.
Improved recalctimings when 256+ mode Enhanced Mode is issued.
Added the MiroCRYSTAL 8S VLB card (805, SDAC).
Added the Phoenix S3 Vision968 (IBM RGB) and the MiroCRYSTAL 20SD VLB (864, SDAC) (alongside their BIOSes).
Added the vendor specific bits of CRTC5c used by the MiroVIDEO 40SV Ergo (968), Phoenix 868 and Phoenix 968.
Restored FIFO in the pre-964 cards, but without threading (Warning, code might be bloated for this).
Fixed horizontal issue with the SPEA Mercury P64V (968).
The 82C425 is a CGA-compatible display controller chip. On top of being
able to drive a regular CRT display like an ordinary CGA card, it can
be configured to drive a monochrome 640x200 LCD panel instead.
The chip along with a LCD panel are notably used in the Victor V86P
laptop comupter.
When driving a monochrome LCD, the controller is able to employ some clever
tricks to compensate for he lack of color: by alternately turning dots on
and off with various duty cycles it can achieve displaying 4 or 8 shades
of gray. It can also enhance contrast between the text glyphs and their
background when it's less than the configured minimum (with "SMARTMAP"
algorithm).
The emulation is fairly complete. The 320x200 graphical mode uses 4 gray
shades along with stretching the pixels horziontally much like the real
hardware would. SMARTMAP is implemented for text mode and also matches
the real hardware pretty closely.
The missing bits are:
* Configurable blink rates
* Mapping the character map into host address space
The code is based on the T1000 display controller emulation and
still bears strong resemblance to it.
Overhauled the read portion of the PIX TRANS command (fixes white corruption in some instances while keeping everything already working fine).
Fixed Miro 10SD recalctimings issue about losing graphics mode.
DWORD mode SVGA CRTC bit fixed when S3 DWORD mode bit is enabled.
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)
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.
- Olivetti M19.
- Olivetti M240.
Implemented mainboard jumper settings for Olivetti M24 machine:
- Like on a real M24, onboard video card can be disabled, and other video cards can be installed.
- Renamed m_olivetti_m24.c to m_xt_olivetti.c, as it handles all XT-class Olivetti machines.
Decoupled Olivetti OGC (640x400 extended CGA) from M24 machine code:
- OGC exists both as 16-bit proprietary card and 8-bit ISA card (GO708).
- Implemented underlined text handling in 80x25 character mode.
- Like Compaq CGA, replaced code portions common to CGA with calls to vid_cga.c.
Various performance improvements;
Fixed USB UHCI HCHalt;
Cirrus Logic CL-GD 5422/24 fixes and removed them from the Dev branch;
The Storage controllers sections of Settings now has its own corresponding section of the configuration file;
Fixed the AT clock divisors for some Pentium OverDrive CPU's;
Added the ACPI RTC status (no ACPI RTC alarm event yet).
Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes#929;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
Marked the Trio3D/2X as incomplete/dev-branched due to bugs on win9x and no public datasheet of it.
Added 8MB option to the supported video memory to the ViRGE/VX.