Lionel Flandrin
0e1abac04e
Remove debugging
2016-03-08 22:45:13 +01:00
Lionel Flandrin
23a0dffe07
tmp
2016-03-08 22:10:40 +01:00
Lionel Flandrin
c28ae6147f
Store subpixel precise data in the RAM
2016-03-08 22:05:55 +01:00
Lionel Flandrin
ce289ad013
Rewrite RAM implementation to store u32s internally
2016-03-08 19:11:52 +01:00
Lionel Flandrin
e93b918243
Fix GTE tests with subpixel precision
2016-03-08 19:11:52 +01:00
Lionel Flandrin
ad37fa3813
Added generic parameter for subpixel precision in the CPU
2016-03-08 19:11:52 +01:00
Lionel Flandrin
06094e7323
Implement subpixel precision in the GTE
2016-03-08 17:10:53 +01:00
Lionel Flandrin
95c4f23006
Added "trigger_break" command to the debugger
2016-03-07 22:24:51 +01:00
Lionel Flandrin
fe5fd11416
Minor cleanup in box_array
2016-03-07 22:09:33 +01:00
Lionel Flandrin
ba1cf44f43
Move the debugger instance out of the shared state
...
It caused recursive borrowing of the debugger when debugging code that
needed the shared state. It's simpler to keep the both separated.
2016-03-06 23:27:59 +01:00
Lionel Flandrin
e9d991cb15
Rewrite load delay implementation to use a single set of registers
...
We now handle the load delay explicitly in all opcodes but we no
longer have to copy the 32 registers between `regs` and `out_regs`
after every instruction.
On my machine Spyro's start screen goes from ~220 to ~240 fps with
this modification (with vsync turned off obviously). Not huge but
noticeable.
2016-03-05 22:23:42 +01:00
Lionel Flandrin
df6984a2cd
Remove oldmain.rs (leftover of the standalone version)
2016-03-05 15:07:35 +01:00
Lionel Flandrin
27cfaaf1e7
Rewrite box_array to be type-safe
2016-03-04 21:57:26 +01:00
Lionel Flandrin
07ef661a2b
Added a "box_array!" macro using unsafe code to allocate arrays on the heap
2016-03-04 21:34:03 +01:00
Lionel Flandrin
5bd34be004
Fix warnings with Rust 1.7
2016-03-04 18:03:57 +01:00
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