Lionel Flandrin
2d287dec34
tmp
2015-12-26 01:45:44 +01:00
Lionel Flandrin
910c54cd8e
Cleanup in OpenGL code
2015-12-11 18:55:11 +01:00
Lionel Flandrin
5fe14bab47
Rewrite image load code to use texelFetch
2015-12-11 13:42:00 +01:00
Lionel Flandrin
a61cb013a5
Replace implementation-defined "round" with "floor(x + 0.5)" in the shaders
2015-12-10 17:04:56 +01:00
Lionel Flandrin
b3e7626c5c
Implement 24bit display mode
2015-12-10 16:20:47 +01:00
Lionel Flandrin
a5fc33dfe8
Cleanup command fragment shader
2015-12-10 11:32:30 +01:00
Lionel Flandrin
d92bee7e0f
Implement dithering
2015-12-09 22:00:27 +01:00
Lionel Flandrin
1a4ec007ac
Updated README
2015-12-09 21:58:26 +01:00
Lionel Flandrin
690ccc3aaf
Implement texturing in the OpenGL renderer
...
No semi-transparency or mask bit support yet.
2015-12-09 21:13:33 +01:00
Lionel Flandrin
44b6fc3703
Use linear interpolation for the VRAM overlay
...
Fix texture coordinates: the last line wasn't displayed.
2015-12-05 01:17:41 +01:00
Lionel Flandrin
38db20d091
Implemented GPU image loading into the VRAM
...
Texturing itself is not implemented yet but it's a step in the right
direction...
2015-12-05 00:07:49 +01:00
Lionel Flandrin
bea980fff4
Implement indirect rendering and basic video output
...
Instead of drawing directly to the screen we first render the entire
framebuffer to a texture and once per frame we display the visible
part of the framebuffer on the screen.
2015-12-04 21:15:21 +01:00
Lionel Flandrin
af75bd54e1
Implement CDROM command GetParam
2015-11-28 00:30:30 +01:00
Lionel Flandrin
50f4bf4baa
Implement polyline draw commands in the GPU
...
Refactor GP0 handling code to use method pointers for dispatch. Makes
it easier to handle command with a variable number of arguments like
polylines and image loads.
2015-11-25 22:25:01 +01:00
Lionel Flandrin
b237445e41
Implement 16x16 monochrome rectangle GPU command
2015-11-25 22:22:26 +01:00
Lionel Flandrin
af79556cf6
Added variation for NA disc license string (found in Rayman)
2015-11-25 00:13:03 +01:00
Lionel Flandrin
b1c36768f8
Support reading from the SPU main, CD and EXT volume register
2015-11-19 22:53:22 +01:00
Lionel Flandrin
b15cdc975d
Don't crash when a game attempts to Pause an idle CDROM
2015-11-19 22:48:22 +01:00
Lionel Flandrin
8db89dc718
Support reading from the SPU VOICE_NOISE_EN register
2015-11-19 22:29:33 +01:00
Lionel Flandrin
5a92f504c8
Ignore DMA reads from the MDEC (store 0s in RAM)
2015-11-19 22:10:33 +01:00
Lionel Flandrin
7e983a5711
Added placeholder code for GPU Copy Rectangle command
2015-11-19 22:04:58 +01:00
Lionel Flandrin
a470640507
Implement CDROM command Mute
2015-11-19 21:54:28 +01:00
Lionel Flandrin
f6514ed5ad
Implemented GPU line draw commands
...
Missing support for poly-lines.
2015-11-18 22:28:57 +01:00
Lionel Flandrin
148cbdcb33
Fix GTE sign extention issues
2015-11-17 18:43:37 +01:00
Lionel Flandrin
1f6d8f0aa9
Implement 1x1 monochrome rectangle (point) GPU command
2015-11-11 12:55:13 +01:00
Lionel Flandrin
b7a17b0150
Implement GTE command DCPL
2015-11-11 12:45:00 +01:00
Lionel Flandrin
4b4a6062ca
Better handle asynchronous events in the CDROM controller
...
It's far from perfect but it handles processing commands while we're
reading disc sectors without missing an interrupts.
Enough to reach Spyro's start screen (NA version).
2015-11-11 00:46:38 +01:00
Lionel Flandrin
268d0b1f99
Implement GPU 8x8 rectangles and factor rectangle drawing code
2015-11-08 17:26:26 +01:00
Lionel Flandrin
d4e068ae12
Handle halfword and byte DMA register writes
2015-11-06 17:56:41 +01:00
Lionel Flandrin
a8d19c03dc
Redesign memory access infrastructure
...
Previously for Byte and HalfWord store we would only pass around a u8
and a u16 respectively. This is not accurate when accessing certain
device registers since some devices ignore the requested access width
and may use more than the expected number of bytes from the source
register.
Now we always pass the entire register value in a u32 instead, it's up
to the device implementation to select what it needs to use depending
on the Addressable width.
2015-11-06 00:57:52 +01:00
Lionel Flandrin
29a90d1fa2
Handle halfword and byte DMA register reads
2015-11-05 23:50:44 +01:00
Lionel Flandrin
3431429c53
SPU: panic if a game enables the interrupt
2015-11-05 23:33:15 +01:00
Lionel Flandrin
a82c6e3c99
Implement CDROM command GetTN
...
For now we prentend all discs have only one track.
2015-11-05 23:26:43 +01:00
Lionel Flandrin
2d57d4aa12
Implement CDROM command GetLocP
2015-11-03 23:55:19 +01:00
Lionel Flandrin
f953a8e849
Implement CDROM command ReadS
2015-11-03 20:42:04 +01:00
Lionel Flandrin
e5eb95e941
Implement CDROM SetFilter command
2015-11-03 00:18:41 +01:00
Lionel Flandrin
596485af9b
Execute GTE instructions even when an interrupt occurs
2015-11-01 18:27:49 +01:00
Lionel Flandrin
5bb3ff3ba8
Updated README
2015-10-30 20:19:54 +01:00
Lionel Flandrin
c4478cdb8a
Rewrite GPU fill rect implementation to be more accurate
2015-10-29 23:08:36 +01:00
Lionel Flandrin
a169edabe5
Implement GTE commands DPCT and NCCS
2015-10-28 23:14:15 +01:00
Lionel Flandrin
7b04e2197b
Implement GTE commands NCDT and AVSZ4
2015-10-27 23:47:34 +01:00
Lionel Flandrin
0041242d40
Fix GTE command MVMVA for IR vector
2015-10-27 23:00:38 +01:00
Lionel Flandrin
526949bab5
Add more GTE tests
2015-10-27 21:25:49 +01:00
Lionel Flandrin
abe0521973
Implement GTE command GPL
2015-10-27 20:57:53 +01:00
Lionel Flandrin
9b42d864c2
Fix GTE DCPS command shift error.
2015-10-27 20:08:29 +01:00
Lionel Flandrin
47d435b63a
Fix sign extension when reading some GTE matrix registers
2015-10-27 19:46:51 +01:00
Lionel Flandrin
9163a07d80
Implement GTE command OP
2015-10-26 23:04:29 +01:00
Lionel Flandrin
64e3110fc3
Implement GTE command CC
2015-10-26 22:50:36 +01:00
Lionel Flandrin
839d75ea4e
Implement GTE command SQR
2015-10-26 22:40:37 +01:00
Lionel Flandrin
e76eba8347
Implement GTE command GPF
2015-10-26 22:35:56 +01:00