Commit graph

237 commits

Author SHA1 Message Date
TomW
0854c5da89 Fixed crash introducted in rev 234. 2015-05-03 20:31:55 +01:00
TomW
736eab845a Enabling LFB on ViRGE disables VGA bitplanar functionality.
RctFll command now aborts if height is zero.
Helps BeOS.
2015-05-03 16:12:32 +01:00
TomW
d2206f91c9 PIIX command register now honours bit 2.
All IDE interrupts now set PIIX IDE Interrupt Status.
Helps BeOS.
2015-05-03 16:10:11 +01:00
TomW
28a2336aae MOV DRx now loads/stores from 'dummy' DRx registers (BeOS). 2015-05-03 14:42:34 +01:00
TomW
1e5b46c077 Added Voodoo 2x2 dither pattern. 2015-04-29 21:09:17 +01:00
TomW
fe38137074 Fixed Voodoo unfiltered 16-bit alpha-palette textures. 2015-04-28 20:05:19 +01:00
TomW
66d4ac6d9a Voodoo now allows invalid LFB write buffer select - BreakNeck now works. 2015-04-27 20:36:49 +01:00
TomW
b279cb75e8 Voodoo optimisations. 2015-04-27 17:58:44 +01:00
TomW
8f1f7e01c0 Fixed stupid bug in FPU rounding mode in recompiler, fixed particle explosions in Quake. 2015-04-22 19:26:52 +01:00
TomW
50b74dcb2a Illegal instruction interrupt caused by disabled FPU has correct return address - Turok works again. 2015-04-21 17:39:04 +01:00
TomW
15bca849c8 Added code generation for first batch of FPU instructions; instructions added are most common instructions used in Quake. 2015-04-19 08:42:04 +01:00
TomW
f1551a8f76 Fixed some warnings in the recompiler. 2015-04-14 20:50:49 +01:00
TomW
9d3a3132ac Makefile.mingw clean now uses rm instead of del. 2015-04-14 20:43:18 +01:00
TomW
bbf0011e95 Added code generation for JCXZ, LOOP, JE, JNE, JS, JNS, JB, JNB, JO, JNO, JP and JNP. 2015-04-14 20:40:40 +01:00
TomW
1fb4de4507 Dynamic recompiler now works on Linux (32-bit only) 2015-04-11 18:31:51 +01:00
TomW
6caeca2c7c Tweaks to generated code, should reduce size slightly. 2015-04-11 16:06:50 +01:00
TomW
feaf399a2d Cache setting now handled correctly on startup. 2015-04-07 18:06:03 +01:00
TomW
644d17fc7f Fixed bug which ejected discs on hard reset. 2015-04-02 19:54:47 +01:00
TomW
1098b1f870 Fixed stupid typo which broke hard reset with dynamic recompiler. 2015-04-01 19:38:22 +01:00
TomW
a97e89e857 Added code generation for register and immediate PUSH/POP, RET, relative CALL and JMP instructions. 2015-03-30 20:42:33 +01:00
TomW
42155b4c6a Added correct Voodoo dithering. 2015-03-23 21:03:42 +00:00
TomW
d6908a5450 Slight bugfix to Voodoo subpixel correction. 2015-03-22 13:56:03 +00:00
TomW
95dd53e4d7 Implement more faithful Voodoo PCI FIFO emulation - slight slowdown, but fixes issues with Unreal and probably other games. 2015-03-21 20:41:12 +00:00
TomW
883ad5da23 Fixed Voodoo swap count when vsync disabled. Quake III now works. 2015-03-21 11:31:53 +00:00
TomW
a8159f8c09 Various changes to FDC emulation.
Support for multiple disc image formats.
Added preliminary FDI support.
2015-03-19 21:33:19 +00:00
TomW
37fe4a56be Fixed missing return value in sis496_init() 2015-03-19 21:08:31 +00:00
TomW
80add6415c Added TLB miss penalties. 2015-03-09 20:31:17 +00:00
TomW
faec4da733 All CALL/RET/JMP/IRET/INT instruction cycles should now be counted in recompiler. 2015-03-09 19:54:02 +00:00
TomW
708cf896d1 Added usable 3DFX emulation. 2015-03-08 15:55:03 +00:00
TomW
c11a771530 Fixed crashes in fastread*() 2015-02-16 20:00:16 +00:00
TomW
4ebd447e89 Fixed carry flag in DAA/DAS. 2015-02-13 21:06:54 +00:00
TomW
c7b6fde58c Added code generation for memory source versions of AND, OR, XOR and TEST (that was intended for rev 199). 2015-02-09 21:21:48 +00:00
TomW
d6c177a3c0 DMA now causes page dirty mask to be updated. 2015-02-09 18:26:59 +00:00
TomW
68df72958c MOV EAX/AX/AL with immediate address now has correct PC when aborting. 2015-02-09 18:09:46 +00:00
TomW
d1422eee39 Fixed loaded CPL on interrupt, Coherent now works. 2015-02-09 15:37:09 +00:00
TomW
ac9b5a9927 Fixed missing CD audio. 2015-02-09 12:33:52 +00:00
TomW
bc5ce43519 Memory-source arithmetic instructions now have correct PC when aborting. Fixes Discworld 2.
Removed some debug junk from last commit.
2015-02-09 12:17:54 +00:00
TomW
ba715706b6 Added code generation for memory versions of MOV, and memory source versions of ADD, SUB, AND, OR, XOR and CMP. 2015-02-08 17:17:14 +00:00
TomW
7a7f586cd3 64-bit fixes. 2015-02-03 18:47:16 +00:00
TomW
47db0646c1 Fixed typo in x87 opcode tables. 2015-02-03 18:42:09 +00:00
TomW
ea5e96569d Lazy flags code now handles carry flag. 2015-02-02 19:54:01 +00:00
TomW
b4592cdea3 Implemented new memory mapping to improve performance of self modifying code.
New scheme allows code blocks to cross pages.
Reduced code block size down to 2kB.
2015-01-28 21:58:02 +00:00
TomW
798c24d7c4 Fixed flag on recompiled 8-bit SUB reg,imm - Windows 95 setup works again 2015-01-26 21:58:14 +00:00
TomW
f38e2be43f Implemented trap flag on dynamic recompiler. 2015-01-18 17:13:49 +00:00
TomW
95640bb4bb SGDT now stores all 32 bits of the base address, even in 16-bit mode. Fixes Win32s. 2015-01-18 15:36:30 +00:00
TomW
17ee2a7d9e FLAGS bit 15 now always clear on 386+ CPUs. Fixes HX DOS extender CPU type test. 2015-01-18 14:50:55 +00:00
TomW
19c318675a FCOM/FUCOM now use inline assembler on x86 targets. Unreal now works. 2015-01-17 22:06:32 +00:00
TomW
630592125c Added code generation for immediate->register and register versions of MOV, XCHG, ADD, SUB, AND, OR, XOR, TEST, CMP, INC and DEC. 2015-01-16 21:22:14 +00:00
TomW
00f6271ec8 Recompiled code blocks are no longer allowed to cross pages.
Recompiling of blocks is aborted if the code page becomes dirty.
Fixes Windows 98 setup.
2014-12-06 16:35:45 +00:00
TomW
4855071ead Effective address calculations now implemented by recompiled code. Up to 30% performance gain seen. 2014-11-30 17:48:10 +00:00