Commit graph

405 commits

Author SHA1 Message Date
Blue
73b1bf7998 GPU: Handle 1w xh VRAM reads
This fixes Final Fantasy 9 hang after first combat
2022-12-19 19:33:34 +01:00
Blue
79c6de9c5a DMA: Refactor 2022-12-19 19:30:39 +01:00
Blue
37fabbd057 SPU: Handle ramDataTransferAddressInternal overflow 2022-12-18 00:45:51 +01:00
Blue
8e44e3f9bf DMA: Handle resumable dmas
This makes Final Fantasy 9 playable
2022-12-18 00:43:50 +01:00
Blue
7d1b924bfd DMA: Simplify edgeInterruptTrigger 2022-12-18 00:41:20 +01:00
Blue
adb81d776a MDEC: Support word by word decoding
It passes all Jakub's MDEC tests even though we are not handling actual dma data requests.
2022-12-18 00:39:36 +01:00
Blue
20251d2558 DMA: Handle dma master enable 2022-12-04 19:21:59 +01:00
Blue
c96c95b520 DMA: Support hardwired OTC control bits 2022-12-04 16:51:23 +01:00
Blue
65e55f1137 DMA: Support size 0 transfers being actually size 0x10000 2022-12-04 16:29:31 +01:00
Pedro Cortés
6d64c82979 CPU: Avoid Instr imm and imm_s and 2022-11-25 19:48:41 +01:00
Pedro Cortés
9040eb51ab CDROM: Add basic delayed interrupt handling
Among others things like being able to play cd audio from bios (as it detects the tracks) it makes GT1, RE2 and RE3 playable.
2022-11-25 19:47:19 +01:00
Pedro Cortés
99360876b7 CPU: Remove fun ptr initialization
Turns out the indirection is not always elided and the profiler shows both calls. In the end making all the cpu instructions static and mutating the state is (marginally) faster thought the instruction code is a bit more verbose.
2022-11-13 16:27:33 +01:00
Pedro Cortés
4b82acd688 Project: Update to .NET 7
net7 go brrrrr...
2022-11-12 11:17:01 +01:00
Pedro Cortés
6875834520 OpenTK: Update to 4.7.5 2022-11-12 11:15:23 +01:00
Pedro Cortés
6647174d6f
Merge pull request #23 from BluestormDNA/MicroOptimizations
Micro optimizations
2022-10-07 21:42:33 +02:00
Blue
f77e755df6 VRAM: make H and W const
As multiple of 2 the JIT will drop an IMUL for a plain SHL
2022-10-07 21:40:26 +02:00
Blue
de3935b944 VRAM: Ellide bounds check 2022-10-07 21:33:48 +02:00
Blue
a82e0e003b Ellide bounds checking on pipeline MA and WB 2022-10-07 21:29:47 +02:00
Blue
f726df2c54 Add 1555 to 8888 LUT 2022-10-07 21:25:51 +02:00
Blue
8e0a2bd47e GPU: Flip GpuStat.13 when isVerticalInterlace. Fixes openbios boot. 2022-08-28 17:44:39 +02:00
Blue
f71eec9494 Devices: Add Exp2 2022-08-28 17:42:12 +02:00
Blue
72aeb4fcd9 Winform: Update to Naudio 2.1.0 2022-08-01 22:30:06 +02:00
Blue
d4a4c422d9 OpenTK: Update to 4.7.4 2022-06-25 16:40:39 +02:00
Blue
5e8438a7c1 SPU: Support Reverb 2022-06-25 16:37:09 +02:00
Blue
ed2b7c240e XADPCM: Handle 18900 resampling
It fixes Tony Hawks intro MDEC audio, and Dino Crisis voices being 2x speed.
2022-05-28 12:09:32 +02:00
Blue
31646d8762 ADPCM: Handle shift 9..12 quirk 2022-05-27 21:55:55 +02:00
Blue
824fc838d4 CDROM: Refactor commands 2022-05-27 21:31:42 +02:00
Blue
9db088f25c SPU: Fix dma load size
This fixes Gran Turismo going ingame and Marvel vs Capcom freezing before main screen
2022-05-27 21:21:51 +02:00
Blue
af0bc8bd04 CD: Handle AudioCDs
wip
2022-05-22 18:58:02 +02:00
Blue
f23511c971 TrackBuilder: Identify Audio tracks 2022-05-22 18:57:32 +02:00
Blue
ba44f589b6 OpenTK: Update to 4.7.2 2022-05-22 18:29:57 +02:00
Blue
ac9508b4a6 SPU: Turn off voices when not enabled 2022-05-15 20:41:06 +02:00
Blue
446ac4f264 SPU: fix lower 0..5 bits of status<->control 2022-05-15 20:34:09 +02:00
Blue
5402159b37 GPU: Handle GPUSTAT.27 2022-04-30 19:14:50 +02:00
Blue
953b5b05a2 GPU: Handle GPUSTAT.25 on GP1_04 2022-04-30 18:50:37 +02:00
Blue
3a5a1c68f9 GPU: Fix GpuStat.19 misalignment 2022-04-30 18:18:37 +02:00
Blue
cb4a557d2a OpenTK: Update to 4.7.1 2022-02-27 21:43:45 +01:00
Blue
166025c656 BUS: Cleanup 2022-02-18 22:43:25 +01:00
Blue
163c701e9b CDROM: CDDA autoPause on trackChange, Change disc.
Arguably the change disc functionality is on the core but the frontends lacks the capability to use it.
This has been tested with Final Fantasy 7, 8 and Metal Gear Solid, and MGS VR Missions
2022-01-10 19:55:23 +01:00
Blue
aae00df3c9 CD: Sense track changes 2022-01-09 14:54:01 +01:00
Blue
3ec554ae26 Update .editorconfig to match core 2022-01-09 14:53:27 +01:00
Blue
7797944f89 CPU: Make CPU_EXCEPTIONS optional
They were very helpful to validate CPU behaviour on tests but no known game triggers them so make them optional
Enabling them, will pass CPU tests, disabling them will give a nice bump on speed as unnecesary ops are no longer triggered.
2021-12-12 19:55:36 +01:00
Blue
f61cbeb215 GPU: Add GP0_02_FillRectVram fastpath for non wrap 2021-12-11 21:54:46 +01:00
Blue
3da05b2f05 Window: Blit24bpp optimizations 2021-12-07 16:12:59 +01:00
Blue
2868eb5534 GPU: Rasterize Optimizations:
- Removed Point2D Vertex and Texture heap array structs (they are stack allocated on tris and rects)
- Moved the bias addition of topLeft rules on tris to the edge function result. Even thought this means that it needs to be unbiassed on textured and shaded tris it produces faster code on the actual critical if checkinf if it's inside the tri. (On my test envirovement this was a bump from around 110 to 120 fps on Jakub plain 100 tri benchmark.
2021-11-20 12:51:00 +01:00
Blue
d9320edc62 GPU: Remove forceSetE1
The functionality is still the same: Textured tris force set E1 globally for further commands but remove the actual funct as it was doing the same work and reuse the gpu fields for the primitive instead of reshift everything again.
2021-11-14 21:12:19 +01:00
Blue
865030948a GPU: Reuse interpolate on shaded tri 2021-11-14 21:00:47 +01:00
Blue
f916e22160 GPU: Render Rect refactor 2021-11-14 20:44:16 +01:00
Blue
b09a11407e Seal class 2021-11-13 16:08:07 +01:00
Blue
fe6469ff51 Controller: Remove unneded IHostWindow ref 2021-11-13 16:07:37 +01:00