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
Lionel Flandrin
583ec0ef57
Implement GTE command INTPL, fix saturation error in DPCS
2015-10-26 20:37:31 +01:00
Lionel Flandrin
cde15ff0b6
Turn multisampling off, it doesn't make sense to have it on by default
2015-10-26 19:00:39 +01:00
Lionel Flandrin
717a804910
Factor GPU code for the various draw command variations.
2015-10-25 16:02:14 +01:00
Yamakaky
69d35c7805
Disable incorrect sRGB correction.
2015-10-25 08:21:27 +01:00
Lionel Flandrin
b95d951be1
Ignore reads from the SPU internal registers
2015-10-25 02:11:37 +02:00
Lionel Flandrin
cc07796ffe
Implement many GPU quad and triangle rendering commands.
...
Implemented GP0 commands 0x2a, 0x2e, 0x34, 0x36, 0x3c, 0x3e and 0x7c.
We can now reach the first level of Crash Bandicoot (Japan), albeit
with major graphical glitches.
2015-10-25 01:55:56 +02:00
Lionel Flandrin
d203a70927
Implement partial semi-transparency support in OpenGL renderer.
...
For now all semi-transparent primitives are rendered with 50% opacity
regardless of the current semy-transparency mode.
2015-10-25 01:20:24 +02:00
Lionel Flandrin
5d69b912f2
Ignore DMA transfers to the SPU
2015-10-24 23:38:17 +02:00
Lionel Flandrin
605c1f1d08
Implement reading from MEM_CONTROL registers
2015-10-24 17:01:18 +02:00
Yamakaky
773e5cadfe
Fix Frame::finish call missing.
2015-10-24 16:18:56 +02:00
Yamakaky
2793e4211e
Migrate to glium.
...
I tried to follow the existing code as close as possible. It should be
equivalent.
- Remove buffer.rs, error.rs and shader.rs to use glium builtins
- Remove automatic color normalization (see
https://github.com/tomaka/glium/issues/1313 )
- Add a Vertex struct
- Modifie Color and Position
2015-10-24 15:24:40 +02:00
Lionel Flandrin
60bd49ca55
OpenGL renderer: implement drawing area using the scissor box
2015-10-22 23:22:09 +02:00
Lionel Flandrin
8ecbc96870
Fix bogus sign extension when reading the GTE XY_FIFO
...
Factor some code while we're at it.
2015-10-22 19:28:02 +02:00
Yamakaky
3e72aa55e5
Remove dependencie "libc", update indirect deps
...
Maybe it was needed before ?
2015-10-21 23:49:31 +02:00
Lionel Flandrin
831871a7b9
Support writes to the GTE RGB FIFO
2015-10-21 22:54:10 +02:00
Lionel Flandrin
ef0c12782a
Implement GTE command NCCT
2015-10-21 22:49:04 +02:00
Lionel Flandrin
49c2e91f6e
Implement GTE command RTPS
2015-10-21 22:01:00 +02:00
Lionel Flandrin
e477266b86
PadMemCard: Implement baud divider read
2015-10-21 21:55:11 +02:00
Lionel Flandrin
5cbfdeffb7
Implement GTE command DPCS
2015-10-21 21:51:19 +02:00
Yamakaky
db972fb051
Normalize vertex color.
...
Let's let opengl do it for us!
2015-10-21 20:51:03 +02:00
Lionel Flandrin
fcb21241b9
Implement most SPU shadow registers.
2015-10-21 20:37:23 +02:00
Lionel Flandrin
d758c7695e
License code using the GPL-2.0+
...
Using mednafen's license since I ported some code straight from there.
2015-10-13 23:14:07 +02:00
Lionel Flandrin
427856c0bf
Minor cleanup in gamepad code
2015-10-11 00:02:32 +02:00
Lionel Flandrin
dc7a94642e
Implement CDROM "data available" status bit
2015-10-11 00:01:48 +02:00
Lionel Flandrin
774349c2dc
Implement GPU GP0(0x60) command
2015-10-10 00:59:37 +02:00
Lionel Flandrin
f6762b918d
Implement GTE command MVMVA
2015-10-10 00:52:56 +02:00
Lionel Flandrin
757cfc74ef
Ignore writes and reads to the MDEC registers
2015-10-10 00:38:32 +02:00
Lionel Flandrin
588d4ad5bd
Implemented placeholder code for CDROM audio config registers
2015-10-10 00:15:17 +02:00