Commit graph

578 commits

Author SHA1 Message Date
SarahW
9ae73bedd8 Added missing files from previous commit. 2016-11-28 17:41:02 +00:00
SarahW
a4f3b2013e Added AMI 386DX and MR 386DX models (both based on OPTi 495 chipset). AMI 386DX supports external cache, useful for with prefetch emulation.
Also commit a few fixes required :
- Set EDX correctly on soft reset
- LOCK NOP is now treated as an illegal instruction
- Tweaks to FDC sense interrupt handling following FDC reset
2016-11-27 21:53:13 +00:00
SarahW
1b73963997 Added prefetch timing approximation for 286/386 CPUs, with configurable memory timing. 2016-11-25 21:32:02 +00:00
SarahW
c5889e311f Implemented Voodoo 2 triangle setup cull ping-ponging. Fixes missing triangles in Starsiege Tribes. 2016-11-22 19:42:08 +00:00
SarahW
e162b6166e Voodoo now implements texture RGB as a multiplier input in the colour combiner. 2016-11-20 17:16:00 +00:00
SarahW
7084337906 Voodoo non-recompiler now implements texture alpha reverse blending correctly. 2016-11-20 17:15:18 +00:00
SarahW
de1d72b92b Voodoo non-recompiler now uses correct W coordinate for TMU #1 2016-11-20 17:14:48 +00:00
SarahW
fd8b80d371 Fixed typo in shift counts in texture alpha extraction code in Voodoo recompiler. 2016-11-20 17:14:07 +00:00
SarahW
747f8994ca Added code generation for RMW versions of SHL/SHR/SAR 2016-11-17 20:01:28 +00:00
SarahW
b9a7fb042f Added code generation for RMW versions of INC/DEC 2016-11-16 21:14:38 +00:00
SarahW
bd3576e947 Fixed missing declaration of 'fatal' in ibm.h 2016-11-15 21:11:42 +00:00
SarahW
0985952317 Added code generation for RMW versions of ADD/SUB/OR/XOR/AND 2016-11-13 14:30:39 +00:00
SarahW
a174a88c49 Codeblock tree now includes both physical and virtual addresses into key. Fixes performance issues with Windows 3.1. 2016-11-08 21:30:48 +00:00
SarahW
52fd357f3d Voodoo CLUT data can be written via CMDFIFO. 2016-10-22 16:13:42 +01:00
SarahW
396992f102 More accurate PCI timing, mainly for Voodoo. 2016-10-22 16:01:49 +01:00
SarahW
31c311924c Added Voodoo 2 emulation. 2016-10-22 14:18:06 +01:00
SarahW
3527f822b9 Added Plantronics ColorPlus emulation. Patch from John Elliot. 2016-10-16 20:29:12 +01:00
SarahW
3df46b4479 Memory addressing on XT now wraps at 1MB. 2016-10-09 08:53:04 +01:00
SarahW
e591f95f8e Fixed bug that cleared disc change line when loading new disc. 2016-10-04 19:39:37 +01:00
SarahW
620beb1eb5 Writing to VGA RAMDAC write index also sets read index. Fixes colours in Planet Football. 2016-10-03 18:17:40 +01:00
SarahW
0b5c3d24ea Added support for Voodoo with 2 TMUs (Obsidian SB50 with Amethyst daughterboard).
As part of this change, Voodoo now converts textures to ARGB8888 and caches ahead of rendering. Minor speedup.
Also fixed Z clamping when depth bias in use.
2016-10-01 16:42:04 +01:00
SarahW
273ef3847a Improvements to flash ROM emulation on Premiere/PCI, Advanced/EV and Award 430VX PCI modules. Patch from Battler. 2016-09-18 15:57:46 +01:00
SarahW
dd2a608707 x86-32 recompiler performs float->integer rounding by loading FPU control word instead of calling helper function - speedup on some stuff. 2016-09-18 14:57:10 +01:00
SarahW
aab2c3e7cf Don't inline memory read/write code in x86-32 recompiled blocks - speedup (up to 20% seen) 2016-09-15 21:06:28 +01:00
SarahW
6b5467a6c9 Remove unnecessary flag rebuilding in FP_ENTER(). 2016-09-11 17:16:34 +01:00
SarahW
75f9316c11 x86-32 recompiler compiles FPU instructions using direct access to register stack when top-of-stack is static. Minor speedup. 2016-09-11 15:38:05 +01:00
SarahW
1004d947d5 Fixed bug with FRSTOR which broke FPU copy. 2016-09-10 18:41:58 +01:00
SarahW
26b8bdddb6 Fixed branch offset in x86 recompiler JNLE instruction - MS-DOS 6.22 installer works again 2016-08-30 20:32:11 +01:00
SarahW
b92634dea6 Added missing Alpha+YIQ texture format to Voodoo.
Added depth source select to Voodoo.
Fixes graphics issues with Requiem : Avenging Angel
2016-08-29 17:29:55 +01:00
SarahW
d27c7a0947 Replaced Windows critical section with mutex - fixes some issues with window movement/resizing when using Direct3D output. 2016-08-28 20:31:12 +01:00
SarahW
6aef53e854 Remove remaining references to 32-bit addresses in x86-64 recompiler. 2016-08-28 15:58:30 +01:00
SarahW
ea4cd4f35c Added simpler Linux makefiles for those who don't want to use autoconf. Based on patch from moochmcgee 2016-08-28 15:58:52 +01:00
SarahW
ab7ef825c5 Fixed build issue in allegro-video.c 2016-08-28 14:39:41 +01:00
SarahW
5a02b518b8 Moved FPU register stack into cpu_state structure.
Fixed a couple of FPU bugs in x86-64 recompiler that were introduced in rev 543, fixes lightmap issues in Half-Life.
2016-08-25 21:09:02 +01:00
SarahW
eb126fd822 Moved more variables into cpu_state structure. 2016-08-21 21:28:23 +01:00
SarahW
c664682758 Move some more variables into cpu_state structure. Minor speedup (~2%). 2016-08-17 21:28:16 +01:00
SarahW
a65411466e Corrected GUS IRQs when GF1 and MIDI IRQs are combined.
Corrected voice playback when rollover is enabled.
Fixes issues with Windows 3.1 GUS drivers.
2016-08-16 20:29:12 +01:00
SarahW
4e9400bfca IBM PC now has correct memory size switch settings implemented - should now boot correctly on configurations other than 640kb. 2016-08-16 18:37:34 +01:00
SarahW
5f6fb407d4 Force re-seek on disc loading - fixes issues with disc change not seen on some models. 2016-08-16 18:13:41 +01:00
SarahW
4e299a8038 Rewrote handling of host time synchronisation. Amstrad machines now boot again.
Also fixed a bug where the emulated time ran 100x faster than expected.
2016-08-15 20:28:02 +01:00
SarahW
535604b760 Pack decoded ModR/M data into a single word - minor recompiler speedup. 2016-08-14 16:29:54 +01:00
SarahW
31298d6be1 Recompiler no longer sets tempc variable before calling opcode routine. 2016-08-14 11:22:07 +01:00
SarahW
57e2a45d83 PIC mask is set to 0 when ICW1 is written - Crystal Dream 2 now works. 2016-08-11 20:25:00 +01:00
SarahW
2457ff050f Fixed vblank start on ET4000 - now displays 1280x1024 correctly. 2016-08-01 16:29:51 +01:00
SarahW
064acbf07d Added self-modifying code fix to x64-64 recompiler. 2016-08-01 16:12:13 +01:00
SarahW
81b1bfc07f Fix self-modifying code bug, Windows 3.1 works again. 2016-08-01 15:04:17 +01:00
SarahW
42237ac1f8 Recompiler now only recompiles a block after seeing it twice. Improves performance on stuff that uses self modifying code - eg Doom, Duke Nukem 3D, Windows 95 idle 2016-07-31 12:33:37 +01:00
SarahW
d027c55269 Reduced ET4000/W32p FIFO by one entry - fixes display corruption with some drivers. 2016-07-26 21:04:39 +01:00
SarahW
9111b282f9 Added option to disable CGA snow emulation. 2016-07-21 21:36:51 +01:00
SarahW
ea40fefa4f Added missing svga_recalctimings() call to STG and unknown ET4000 RAMDACs. 2016-07-21 20:50:18 +01:00