Lionel Flandrin
86b6f58024
Added tests for RAM access
2016-03-01 16:59:17 +01:00
Lionel Flandrin
84e7fff666
Fix the cdimage submodule URL to use https instead
2016-03-01 16:34:22 +01:00
Lionel Flandrin
b7014b6737
Support reading from CD-ROM XA mode 2 form 2 tracks
...
This seems buggy (since we don't retrieve the entire sector data) but
Spyro does just that during the intro sequence. Maybe it's caused by
an other emulation bug or maybe it's really supposed to do that. Needs
more investigating. At any rate a warning is displayed when this code
is triggered.
2016-03-01 01:32:57 +01:00
Lionel Flandrin
553de07b54
Use the cdimage crate to handle CD operations
2016-02-28 14:32:08 +01:00
Lionel Flandrin
565ee982c6
Minor cleanup in CPU code
2016-02-27 20:13:50 +01:00
Lionel Flandrin
533327c453
Add chained getters to access members of the interconnect through the CPU
2016-02-07 18:40:27 +01:00
Lionel Flandrin
dc731c2a05
Box the SPU RAM to avoid overflowing the stack
2016-01-27 17:43:49 +01:00
Lionel Flandrin
a16dc1a9c3
Convert Rustation into a library, remove all the SDL2 and OpenGL code
...
The OpenGL code has been ported to the rustation-libretro repository.
2016-01-27 17:40:34 +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