Commit graph

339 commits

Author SHA1 Message Date
Lionel Flandrin
9523811c0b Implement gouraud shading 2020-02-24 21:40:12 +00:00
Lionel Flandrin
61cd9a0203 Rename FixedPoint into FpCoord 2020-02-23 17:48:40 +00:00
Lionel Flandrin
3b7bc038a3 Re-validated draw test on real hardware 2020-02-23 17:48:40 +00:00
Lionel Flandrin
8300ffc5af Implement triangle rasterization geometry (no shading) 2020-02-18 22:58:32 +01:00
Lionel Flandrin
44bf6e5533 Start implementing fixed point arithmetics, added tests 2020-02-08 01:15:28 +00:00
Lionel Flandrin
c006553bf2 Rasterizer: stub VRAM load for now 2020-02-03 23:21:18 +00:00
Lionel Flandrin
b3f90a514c Rasterizer: implement VRAM store 2020-02-02 23:57:34 +00:00
Lionel Flandrin
8edd218b02 Rasterizer: stub Clear Cache command 2020-02-02 22:43:09 +00:00
Lionel Flandrin
f39892fb6a GPU: draw rectangular solid quads 2020-02-02 22:40:08 +00:00
Lionel Flandrin
60efe4b39d gitlab-ci: allow rustfmt and clippy tests to fail
These tests seem too unreliable to make mandatory.
2020-01-30 10:28:50 +00:00
Lionel Flandrin
7d69d6ec49 Disc: remove unused struct MissingImage 2020-01-30 10:20:09 +00:00
Lionel Flandrin
90e044db01 GPU: start implementing the rasterizer draw commands 2020-01-30 00:01:30 +00:00
Lionel Flandrin
569745f4dd GPU: dummy threaded rasterizer 2020-01-26 23:57:52 +00:00
Lionel Flandrin
fd079d8243 Convert into a libretro core
Imported a lot of code from the original Rustation codebase, in
particular we can now import CDs, parse the filesystem to figure out
the game's region and then locate an appropriate BIOS.

The core doesn't output anything for the time being (neither video nor
audio) however.
2020-01-26 18:36:57 +00:00
Lionel Flandrin
cf674b44c7 GPU: implement GP1[0x01] (reset FIFO) and GP1[0x02] (ack IRQ) 2020-01-24 17:45:45 +00:00
Lionel Flandrin
13e87a049f GPU: add rectangle drawing timings 2020-01-24 16:23:27 +00:00
Lionel Flandrin
60d96c1e90 DMA: fix clippy warning 2020-01-24 12:29:36 +00:00
Lionel Flandrin
b6222df737 Sync: handle negative elapsed values 2020-01-24 00:04:22 +00:00
Lionel Flandrin
6afa0739cb GPU: implement triangle drawing timings 2020-01-23 22:58:59 +00:00
Lionel Flandrin
cf63f6e1a6 GPU: implement VRAM loading in the register interface 2020-01-23 22:40:26 +00:00
Lionel Flandrin
ea1e8a5173 GPU: fix integer overflow in command FIFO 2020-01-23 22:22:52 +00:00
Lionel Flandrin
34292c193c DMA: implement Manual mode and OTC 2020-01-23 22:22:21 +00:00
Lionel Flandrin
2c03169e4b DMA: implement Request mode 2020-01-23 21:52:33 +00:00
Lionel Flandrin
0a463f1e24 GPU: implement VRAM uploading 2020-01-23 21:25:10 +00:00
Lionel Flandrin
5f6150777a GPU: stub Clear Cache command 2020-01-23 00:00:17 +00:00
Lionel Flandrin
431c566134 GPU: implement Display Off (GP1[0x03]) 2020-01-22 23:56:13 +00:00
Lionel Flandrin
d1576d3a47 GPU: implement quad/triangle drawing timings 2020-01-22 23:40:48 +00:00
Lionel Flandrin
7398858f62 CPU: fix clippy warnings regarding casts 2020-01-22 11:00:51 +00:00
Lionel Flandrin
f1a3fb813a GPU: implement GP1 0x05, 0x06 and 0x07 2020-01-19 22:46:57 +00:00
Lionel Flandrin
0019dd0a71 CPU: correctly refresh IRQ state 2020-01-19 22:28:27 +00:00
Lionel Flandrin
7004998a1d CPU: fix JAL register dependency on RA 2020-01-19 20:53:59 +00:00
Lionel Flandrin
32fc979f22 GPU: tweak GPUSTAT register 2020-01-19 20:10:01 +00:00
Lionel Flandrin
afa4140939 CPU: implement MULT and MULTU timings 2020-01-19 20:10:01 +00:00
Lionel Flandrin
5dc26b5e26 CPU: implement interrupt handling 2020-01-19 00:22:08 +00:00
Lionel Flandrin
d28c78da74 DMA: fix bogus code that used outdated channel control value 2020-01-19 00:08:28 +00:00
Lionel Flandrin
4449fde0f4 DMA: implement end-of-dma interrupt 2020-01-18 23:57:19 +00:00
Lionel Flandrin
c943477778 GPU: implement clip, offset, texture window and mask configuration commands 2020-01-18 18:54:00 +00:00
Lionel Flandrin
f3151602b2 DMA: copy timing code from mednafen 2020-01-18 01:02:29 +00:00
Lionel Flandrin
7d71f505f9 DMA: complete register interface 2020-01-15 22:00:12 +00:00
Lionel Flandrin
9dbf9691e4 Implement DMA direction register 2020-01-15 21:51:39 +00:00
Lionel Flandrin
17147c13e2 DMA: implement reading channel control register 2020-01-15 21:32:19 +00:00
Lionel Flandrin
ff16c1e67c Update psx.frame_done when the GPU is done rendering a frame 2020-01-15 21:22:50 +00:00
Lionel Flandrin
b64e531278 Implement GP1[0x08] (set draw mode) 2020-01-15 21:10:42 +00:00
Lionel Flandrin
633d572754 GPU: implement GP1, stub GPUREAD register 2020-01-15 21:03:32 +00:00
Lionel Flandrin
ab0888805c DMA: start implementing channel configuration 2020-01-15 17:57:42 +00:00
Lionel Flandrin
b3552556ad GPU: implement NOP 2020-01-15 17:09:47 +00:00
Lionel Flandrin
bd9d19be37 DMA: start implementing register interface 2020-01-14 20:16:15 +00:00
Lionel Flandrin
8f5fde1c12 Timers: implement GPU synchronization 2020-01-14 18:45:26 +00:00
Lionel Flandrin
10d5f9ac72 Improve event handling accuracy 2020-01-14 16:25:12 +00:00
Lionel Flandrin
07c539b25c Remove unnecessary public functions and variables, improve docs 2020-01-14 16:17:00 +00:00