Commit graph

  • fbb5904b52 Rework AudioPCI IO port handling to avoid potential conflict between native and CODEC ports. Fixes AudioPCI with Windows XP. SarahW 2020-11-15 16:56:43 +00:00
  • 142301adbf Don't enable SCAT shadow RAM if SCAT configured for less than 1 MB of low memory. Fixes Hyundai Super-286TR with 1 MB RAM configured. SarahW 2020-11-15 13:44:23 +00:00
  • a89347d415 Add Amstrad PC5086 emulation. Patch from davide78. SarahW 2020-11-15 11:11:41 +00:00
  • 95e6819f02 Remove use of _wfopen_s in minivhd. SarahW 2020-11-15 09:02:32 +00:00
  • 322b25a4dc VHD build fixes. Patch from shermanp. SarahW 2020-11-15 08:58:59 +00:00
  • 5ae201b7e7 Disable Banshee lazy overlay update when vertical scaling enabled. Fixes artifacts in low resolution modes (where the lazy update has little benefit anyway). SarahW 2020-11-14 11:38:04 +00:00
  • 9bea8c138a Intel Advanced ZP/EV derived systems don't seem to support Cyrix 6x86 CPUs (executes MSR and CPUID instructions without any preceeding checks). Removed these CPUs from those systems. SarahW 2020-11-14 09:22:45 +00:00
  • 49bdd9534f Add X11 cursor mode to Banshee/V3. SarahW 2020-11-13 20:35:02 +00:00
  • ed37bc4e24 Fix Banshee/V3 mappings following write of PCI command register. Fixes hang following monitor suspend/wakeup. SarahW 2020-11-13 19:38:28 +00:00
  • 86a5b13f46 Add dirty updating for Voodoo Banshee/3 overlay. SarahW 2020-11-13 08:30:34 +00:00
  • a366d977aa Added Voodoo Banshee/3 screen filter. Patch from leilei. SarahW 2020-11-13 08:10:07 +00:00
  • 91e165a6d6 Reduce level of Voodoo Banshee/3 logging. SarahW 2020-11-11 19:55:48 +00:00
  • 0469ab60cb Implement penalties for segment load on Pentium Pro. SarahW 2020-11-11 19:52:13 +00:00
  • 5c3069c561 Add W83977TF SuperIO chip for Gigabyte GA686BX. SarahW 2020-11-09 21:50:42 +00:00
  • c598f88f67 Implement Banshee/V3 vidProcCfg half mode. Fixes low res 16 bpp modes. SarahW 2020-11-09 19:56:51 +00:00
  • 4683d674b6 Implement PIIX SMI gate. Fixes some issues seen on Shuttle HOT-433 when power management disabled in BIOS, which results in the BIOS failing to initialise and relocate the SMI handler but still advertise APM availability. SarahW 2020-11-09 19:29:21 +00:00
  • a01cc90866 Tweak search range when codegen looking for start uOP for given instruction. Fixes range when unrolling LOOP instruction pointing to itself (which could skip initial cycle count update), fixes Windows 98 boot on 6x86 chips. SarahW 2020-11-09 08:07:36 +00:00
  • 624f1cfcfc Set raw limits on LLDT & LTR instructions - Cyrix RSLDT/RSTS instructions no longer corrupt LDT/TR limits. SarahW 2020-11-09 08:06:49 +00:00
  • 7f206c5484 Clear CR4 mask by default. Fixes issues when switching between CPUs that implement CR4 and those that don't. SarahW 2020-11-08 22:11:15 +00:00
  • c0bc163eaf Implement Cyrix SMM mode. SarahW 2020-11-08 20:46:42 +00:00
  • 8a5a0fc48c Intel flash chips respond to writes at all addresses. Fixes NVRAM errors on VS440FX. SarahW 2020-11-04 20:56:40 +00:00
  • 193645a426 Add mutex to protect Voodoo swap count and pending. Should fix hangs sometimes changing video mode on Voodoo 3. SarahW 2020-11-03 21:17:29 +00:00
  • 984437dfa9 Default W83877TF SuperIO to all devices disabled. Fixes FIC VA-503+ IO port conflicts introduced following APM/ACPI implementation. SarahW 2020-11-01 21:42:55 +00:00
  • 038a27767a Implement APM/ACPI functionality for MVP3/VT82C586B, including soft power off. SarahW 2020-11-01 20:46:27 +00:00
  • 82b1486f6b Implement APM on i430LX and SIO chipset. SarahW 2020-11-01 16:55:21 +00:00
  • 38cee364d3 Add basic APM functionality for PIIX/PIIX3 and i430FX, i430VX, i430HX and i440FX chipsets. SarahW 2020-11-01 14:46:56 +00:00
  • 93756d3f01 SMM fixes SarahW 2020-11-01 14:41:39 +00:00
  • 00034c1ece Implement API to terminate current emulator session from within main emulator thread (ie soft power off). SarahW 2020-10-31 22:06:09 +00:00
  • 8f04c11a76 Implement PIIX4 power management. Soft power off is currently 'implemented' by killing the emulator. SarahW 2020-10-31 20:34:52 +00:00
  • 0cbbd22c88 Add emulation of System Management Mode. SarahW 2020-10-31 20:30:10 +00:00
  • 70ab938439 Update dest x/y at end of Banshee blitter command if required. Fixes corruption in Windows 2000. SarahW 2020-10-28 20:35:06 +00:00
  • f705fd8261 Change Voodoo 3 PCI revision from 3 to 1. SarahW 2020-10-28 08:24:11 +00:00
  • 9fc93833c4 Disable logging added in previous commit. SarahW 2020-10-26 20:41:12 +00:00
  • 826389a37a Rework Voodoo texture precalc to support non-split trilinear textures. Fixes trilinear bugs on Voodoo 3. SarahW 2020-10-26 19:39:56 +00:00
  • b40cc2b87e Implement P6 operand & address size prefix penalties. SarahW 2020-10-21 20:07:37 +01:00
  • ec9ca6c97b Fix missing immediate markers in opcode_deps[] tables. SarahW 2020-10-19 20:58:52 +01:00
  • 6ead42d868 Fix off-by-one issue with Voodoo clipping. SarahW 2020-10-19 20:09:36 +01:00
  • 44433fd020 Reset Banshee/V3 2D blitter coordinates on new command start. Fixes corruption in Winamp. SarahW 2020-10-18 14:04:15 +01:00
  • a19829cf11 Add DDC / plug and play monitor support for Mach64VT2. SarahW 2020-10-17 20:10:23 +01:00
  • 7e2c6a5344 Add DDC/plug and play monitor support to S3 ViRGE. SarahW 2020-10-15 21:51:58 +01:00
  • 5eb6f4d168 Implement plug and play monitor support on Voodoo Banshee & 3. SarahW 2020-10-15 20:20:12 +01:00
  • c9891895da Implement Voodoo CMDFIFO enable bit. SarahW 2020-10-12 20:08:35 +01:00
  • d254f41817 Banshee/Voodoo 3 status returns busy when FIFO thread is busy, regardless of command/cmdfifo/render thread status. Fixes some 2D races where drivers start to write to framebuffer while (final) 2D blit command is still running. SarahW 2020-10-09 17:20:25 +01:00
  • 086287809b Mark Banshee/Voodoo 3 cards as PCI. SarahW 2020-10-09 16:46:47 +01:00
  • 114cdd7a15 Add VIA Cyrix III CPUs. Note that this is currently limited to 500 MHz, as Windows 98 won't boot on anything any faster than this. This is most likely a limitation of the current timer subsystem. SarahW 2020-10-08 21:06:32 +01:00
  • 2b43125f79 Rename Banshee reference card to match Voodoo 3s. SarahW 2020-10-08 17:58:11 +01:00
  • 6df66c59fb Add Voodoo 3 emulation. SarahW 2020-10-08 17:56:28 +01:00
  • 2415d8ad50 Mask Banshee desktop start address correctly. SarahW 2020-10-05 19:35:15 +01:00
  • 52a79fbb57 Add option for Voodoo to use 4 render threads. SarahW 2020-10-05 19:34:20 +01:00
  • dbb10c0894 Don't sample & filter EMU8000 voice if current volume is zero. SarahW 2020-09-29 21:16:47 +01:00
  • 92e0b78548 Add missing svga_render_null() function. SarahW 2020-09-29 20:40:53 +01:00
  • 679322882b Add missing svga_render_null() function. SarahW 2020-09-29 20:40:53 +01:00
  • f6406c77e5 Add fast path in Banshee overlay render; if overlay is unfiltered and unscaled then just write straight to destination buffer. SarahW 2020-09-28 20:02:38 +01:00
  • 2cf57ab8b2 If Banshee video overlay is full screen (as would be the case for full screen 3D), don't bother rendering the desktop behind it. SarahW 2020-09-28 19:44:33 +01:00
  • 3e5e519d10 Implement dirty updating on Banshee 16bpp tiled modes SarahW 2020-09-27 21:45:02 +01:00
  • e761045e40 Remove unused variables in Banshee. SarahW 2020-09-17 20:52:31 +01:00
  • 1900499ace Fix "effective clockspeed" display when using Banshee. SarahW 2020-09-17 20:47:39 +01:00
  • 6a09e9636c Disable a lot of dynarec sanity checks in release builds. SarahW 2020-09-17 20:37:30 +01:00
  • 25fe224ea9 Add dynarec optimisation for UOP_MOV_IMM, to avoid register allocation if the destination register won't be immediately used again. SarahW 2020-09-16 20:47:12 +01:00
  • 0d7103368a Add register rename optimisation to dynarec to eliminate some redundant UOP_MOVs. SarahW 2020-09-14 20:46:56 +01:00
  • cccaf86fd3 Mark some exceptions (mainly v86 related) as 'expected', meaning they won't cause a code block deletion. This speeds up some v86 code due to a reduction in code block churning. SarahW 2020-09-09 21:49:28 +01:00
  • 5a94c78cbb Split up exec386_dynarec() a bit. SarahW 2020-09-05 20:51:50 +01:00
  • eb524e6f12 Move trap handling out of main dynarec loop. SarahW 2020-09-05 17:16:33 +01:00
  • 24d8176594 Reset P6 current ifetch_length on start of code block and on decoder flush. SarahW 2020-09-02 21:00:03 +01:00
  • fb391d2484 Rewrite Voodoo triangle setup vertex selection code. Fixes missing triangles on Banshee with some D3D games (eg Black & White, Viper Racing) SarahW 2020-08-31 13:31:23 +01:00
  • 1915149391 Increase Banshee revision to 3, matching my real CL Banshee card. Removes the need for any fogTable hack, which is in any case inconsistently applied by drivers and I think may only be needed on pre-production devices. SarahW 2020-08-27 08:31:43 +01:00
  • 95ccdcae5c Implement bilinear filtering on Banshee video overlay. SarahW 2020-08-18 20:06:08 +01:00
  • 1ebaa7c640 Banshee 2D blitter should wait for 3D to go idle before starting a blit. Fixes text in Forsaken. SarahW 2020-08-17 21:38:25 +01:00
  • 9adb36ece3 Banshee status now returns busy when either of the render threads is busy. Fixed HUD in Jedi Knight. SarahW 2020-08-17 21:11:32 +01:00
  • c9bf81f599 Fix Banshee CMDFIFO base address mask. SarahW 2020-08-17 19:47:57 +01:00
  • fccd59ba92 Add Banshee RGB565 undithered overlay format. Currently dithered and undithered are handled the same. SarahW 2020-08-16 20:57:15 +01:00
  • 870a19f537 Don't fatal() on unknown Banshee port read/write. Fixes Windows 95 hardware detection. SarahW 2020-08-16 20:32:43 +01:00
  • 801e560b53 Remove duplicates from Slot 1 CPU list. SarahW 2020-08-15 21:13:08 +01:00
  • 93c0bc85c7 Mark Banshee mappings as external. Banshee cards now work on GA-686BX. SarahW 2020-08-15 16:48:02 +01:00
  • a85f315daf The existing A-Trend Banshee card is AGP, which is not currently emulated. Replaced with a reference SGRAM PCI card, and added a Creative SDRAM card. SarahW 2020-08-15 16:46:15 +01:00
  • 2212b9a470 Implement out-of-order CMDFIFO handling on Banshee. SarahW 2020-08-15 15:57:39 +01:00
  • 8ee4396b4c Fix race condition in Voodoo FIFO code that could cause an 'Unknown fifo entry' error SarahW 2020-08-15 15:56:32 +01:00
  • bb70f4ff0f Re-enable fog on Banshee. SarahW 2020-08-15 14:38:31 +01:00
  • 21a3a9acec Update Voodoo framebuffer read/write for Banshee. SarahW 2020-08-14 22:16:35 +01:00
  • 06a07cfcbc Fix off-by-one size error with Banshee overlay. SarahW 2020-08-14 21:44:11 +01:00
  • 6318624661 Banshee fog table seems to be inverted compared to other Voodoo cards (hardware bug?). Re-enabled fog. SarahW 2020-08-14 20:34:23 +01:00
  • 771c5c6ba3 More Banshee host data size tweaking. SarahW 2020-08-13 21:18:20 +01:00
  • 3040c4e994 Additional Banshee host data size fix. SarahW 2020-08-12 21:39:07 +01:00
  • d1f17cd8ae Don't flush Banshee pipeline when reading clipping registers. Fixes severe slowdown in 3dMark2000 fill rate test. SarahW 2020-08-12 20:36:01 +01:00
  • 0298d0ffaf Fix uninitialised variable in Banshee texture writes. SarahW 2020-08-12 20:32:54 +01:00
  • 11b29c7c18 Fix Banshee host data size when source format is 1 bpp. Fixes some bad icon masks in Windows 98. SarahW 2020-08-12 18:07:04 +01:00
  • 133f19fe39 Implement Banshee tiled surfaces SarahW 2020-08-12 15:13:48 +01:00
  • 32900491b7 Update Makefiles SarahW 2020-08-11 11:31:50 +01:00
  • 19a5dfa579 Added Voodoo Banshee emulation. SarahW 2020-08-11 11:18:03 +01:00
  • 41238b3c85 Split vid_voodoo.c into multiple source & header files. SarahW 2020-07-14 21:35:23 +01:00
  • 3cbcf5f575 Optimise Voodoo FIFO processing of framebuffer / texture / register writes. Speeds up games that write large amounts of data to the FIFO, eg menus in Expendable. SarahW 2020-07-06 22:19:38 +01:00
  • 4fe71bdbed The instruction following STI is always executed, even if an interrupt is pending. Fixes Windows 9x boot broken by SYSENTER commit. SarahW 2020-07-01 21:50:11 +01:00
  • 5b2087f84d Added Celeron emulation. SarahW 2020-06-30 21:20:53 +01:00
  • bf68656e8f Implement CPUID cache register for Pentium Pro/II. SarahW 2020-06-30 21:07:21 +01:00
  • b973755ca3 Add hintable NOPs for Pentium Pro and II. SarahW 2020-06-30 20:19:58 +01:00
  • 7eff4f4ba8 Add SYSENTER and SYSEXIT instructions SarahW 2020-06-29 22:19:41 +01:00
  • fda3832e3a Add Gigabyte GA-686BX emulation. As part of this, add i440BX chipset, PIIX4, and i28F002BC Flash. SarahW 2020-06-28 16:05:52 +01:00
  • 3c4fa0511e Add Pentium II Overdrive emulation. SarahW 2020-06-27 11:55:45 +01:00
  • 5ad5764500 Add P6 execution unit timing. OoO behaviour is not very faithful yet. SarahW 2020-06-26 20:37:39 +01:00
  • 4fd7305d1d Limit P6 pipeline throughput to 3 uOPs/cycle SarahW 2020-06-25 19:47:10 +01:00