Commit graph

255 commits

Author SHA1 Message Date
TomW
75fa159caf Reworked Voodoo thread synchronisation, helps performance. 2015-06-01 19:17:26 +01:00
TomW
ca7bd3740b Fixed hang in Voodoo emulation when a framebuffer read occurs while a swap request is pending - fixes Tomb Raider. 2015-05-31 16:43:55 +01:00
TomW
90aa13aa29 Voodoo PCI mapping disabled if base address is zero - fixes Voodoo + Sis496/497. 2015-05-31 12:30:52 +01:00
TomW
4b2eb2e252 Added Power on Setup register (46e8) for OAK OTI-067 - no longer goes to monochrome after reset. 2015-05-31 11:19:06 +01:00
TomW
05de040433 Added codegen_ops_shift.h file missing from rev 247. 2015-05-30 22:31:54 +01:00
TomW
cb2df9e3cf Flush memory lookup cache when mappings re-calculated - fixes soft reset on AMI 386 clone. 2015-05-30 20:25:59 +01:00
TomW
880bec1ea0 FDC now implements write protect error correctly. 2015-05-30 17:35:39 +01:00
TomW
9061c5d2fc Added code generation for :
- TEST immediate
- register versions of NOT and NEG
- fixed shift versions of SHL, SHR and SAR
- MOVZX and MOVSX
- LEA
- CMP with memory destination
- JL, JNL, JLE, JNLE, JBE, JNBE
2015-05-30 17:08:54 +01:00
TomW
6d95f00c36 POP SS correctly disables interrupts on the next instruction. 2015-05-20 20:52:42 +01:00
TomW
62b2bf03aa Implemented Voodoo pixel pipeline-processed framebuffer writes - fixes at least Jedi Knight and Populous The Beginning 2015-05-20 20:30:02 +01:00
TomW
52a27a9256 FPU copy should now work. 2015-05-18 20:33:33 +01:00
TomW
226b63d682 Fixed typo in Voodoo alpha combine. 2015-05-14 20:30:15 +01:00
TomW
2c818c4b1b Increased resolution of Voodoo S/T iterators. 2015-05-12 21:28:32 +01:00
TomW
9e9cf8060a Added configurable Voodoo framebuffer and texture memory. 2015-05-11 21:31:04 +01:00
TomW
9954a29348 Improved Voodoo subpixel correction. 2015-05-11 19:48:34 +01:00
TomW
2624745c67 Implemented Voodoo mipmapping. Probably buggy. 2015-05-09 20:03:41 +01:00
TomW
1802996443 Added missing FYL2XP1 instruction. 2015-05-03 20:53:18 +01:00
TomW
1b927d9f4b Writes to code pages now always marked as dirty even if data doesn't change - BeOS now works under recompiler. 2015-05-03 20:36:22 +01:00
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