Lionel Flandrin
05236c5898
Implement CD-ROM XA Mode 2 Form 2 and whole sector reads
2015-10-06 23:30:17 +02:00
Lionel Flandrin
9c45a7a6b2
Remove GPU debug code
2015-10-06 22:42:17 +02:00
Lionel Flandrin
5b45d0fe18
Implemented CDROM Demute command
2015-10-06 22:37:36 +02:00
Lionel Flandrin
60af2ce012
Implement GPU gp1_get_info(version) command
2015-10-06 22:29:11 +02:00
Lionel Flandrin
b93d587a18
Implemented CDROM Init command
2015-10-06 22:16:19 +02:00
Lionel Flandrin
04a815f993
Fix RFE instruction: duplicate the last entry in the mode stack
2015-10-06 19:25:21 +02:00
Sergey Tikhomirov
0d4eb58f51
Upgrade sdl2 to v0.9.1
2015-10-06 15:06:16 +02:00
Lionel Flandrin
32f75fe5b0
Don't immediately panic when an OpenGL function pointer can't be loaded.
...
If the method is required it'll panic at the use site instead.
This should fix #4
2015-10-06 14:56:53 +02:00
Lionel Flandrin
f3f2aff7c8
First GTE implementation: RTPT, NCLIP, AVSZ3 and NCDS
...
We can now display the PlayStation logo.
Mostly ported directly from mednafen's code since no doc out there
seems to be completely accurate.
Added a test infrastructure to compare the GTE results with the
original console.
2015-10-05 19:41:26 +02:00
Lionel Flandrin
61a253914c
Ignore the CD-ROM sector header when looking for region
2015-10-01 11:18:22 +02:00
Lionel Flandrin
205a837b45
Fix warnings with newer rustc, some code cleanup.
2015-09-30 19:37:14 +02:00
Lionel Flandrin
a5ee8ccac0
Reach the first GTE command
2015-09-28 01:38:59 +02:00
Lionel Flandrin
0841d53080
Basic CDROM XA support: support reading of Mode 2 Form 1 sectors.
2015-09-27 20:18:30 +02:00
Lionel Flandrin
b3248bcd45
Rename project in Cargo.toml
2015-09-27 16:51:29 +02:00
Lionel Flandrin
1fe6d6e820
Rename project to Rustation
2015-09-19 15:56:06 +02:00
Lionel Flandrin
c328041a8b
Add missing "DSR" bit to padmemcard controller status register
2015-09-16 18:41:32 +02:00
Lionel Flandrin
859c602d33
Make the instruction cache ignore the region bits.
...
It appears that the tag of the cacheline doesn't keep track of the
region.
2015-09-15 21:27:22 +02:00
Lionel Flandrin
9ab4174942
Gamepad: schedule interrupt even if it's not active.
...
Otherwise we might miss it if the software activates it while the
transaction is pending.
2015-09-14 18:56:40 +02:00
Lionel Flandrin
7d2827b394
Updated readme now that we have gamepad support
2015-09-12 20:46:40 +02:00
Lionel Flandrin
0f2322df8a
Implemented gamepad emulation.
...
The timings are tweaked because it seems our emulator is too fast at
this point: the BIOS attempts to start a new request while the
previous one is still in progress. This will have to be fixed later as
we become more accurate.
Only the original digital controller is supported for now.
The frontend supports keyboard and controllers through SDL2 for input.
2015-09-12 20:34:38 +02:00
Lionel Flandrin
88c132e399
Added README
2015-09-09 22:18:21 +02:00
Lionel Flandrin
3274b4e353
Panic if a game attempts to use the dotclock as timer source
...
It's not implemented yet.
2015-09-02 20:54:59 +02:00
Lionel Flandrin
a26e113a51
Add support for a few GTE registers (CTC2 opcode), reach the BIOS main menu
...
* Added a few GPU commands used to draw the BIOS menu in SCPH-1001.
* Added placeholder code for DMA GPU read (returns 0s)
2015-08-30 17:11:20 +02:00
Lionel Flandrin
79220727b1
Add support for timer "target" interrupt
2015-08-30 17:07:38 +02:00
Lionel Flandrin
dbca7a2025
Ignore writes to the joystick and memory card controller
2015-08-29 21:59:20 +02:00
Lionel Flandrin
227c71f002
Add missing "target_irq" field when reading the timer status register
2015-08-29 00:23:37 +02:00
Lionel Flandrin
7976891a70
Implemented basic CDROM controller support.
...
For now I cheat by pretending that the CD tray is open. This way the
BIOS bails out and doesn't attempt to run the game.
2015-08-24 23:36:32 +02:00
Lionel Flandrin
14db23ccb7
Add temporary check to catch unhandled interrupt configs
2015-08-16 17:13:00 +02:00
Lionel Flandrin
f905862869
Added basic timer support
...
Only free-run mode is implemented, no interrupts.
Using the GPU's dotclock or HSync as a timer source is implemented
although it requires further testing.
2015-08-16 17:09:34 +02:00
Lionel Flandrin
1918e9dc17
Added DMA interrupt
2015-08-04 21:52:50 +02:00
Lionel Flandrin
c44449a08d
Interrupt handling code: only GPU VBlank IRQ supported for now.
...
IRQ_STATUS and IRQ_MASK are supported, all the CPU code should be
there as well: Interrupt Enable, Interrupt Mask, Interrupt Pending
(including software interrupts, only writing to CAUSE is missing).
2015-07-23 23:22:19 +02:00
Lionel Flandrin
6de5dad543
Implement basic GPU timings
2015-07-13 19:50:48 +02:00
Lionel Flandrin
3def356091
Improve error handling in OpenGL code
2015-07-03 12:15:08 +02:00
Lionel Flandrin
f5c6f66c63
Allow BIOS selection on the command line. Recommend SCPH1001.BIN.
...
Fixes #1 and #2
2015-07-01 11:17:05 +02:00
Lionel Flandrin
dd90961982
Implement debugger write watchpoints
2015-06-19 23:10:32 +02:00
Lionel Flandrin
f3702f6311
Implement instruction cache
2015-05-27 21:13:36 +02:00
Lionel Flandrin
77d75c976b
Don't fetch instructions like data, use a separate path.
...
The two paths should be different in order to handle debugging
read/write watchpoints correctly (instruction fetch shouldn't trigger
them). Later on we'll also need different paths to handle the caches
correctly.
2015-05-25 16:27:11 +02:00
Lionel Flandrin
4ebf7ae877
Debugger: Implement read watchpoints
2015-05-25 16:27:11 +02:00
Lionel Flandrin
c8ec4d62d1
Debugger: Implement breakpoints
2015-05-25 16:27:11 +02:00
Lionel Flandrin
8a5b4d2895
Debugger: Implement "step"
2015-05-25 16:27:11 +02:00
Lionel Flandrin
c962afcdb6
Implement "continue" in the debugger
2015-05-25 16:27:11 +02:00
Lionel Flandrin
137a6de830
Implement debugger memory read
2015-05-25 16:27:11 +02:00
Lionel Flandrin
f48fc15fb8
Refactor interconnect to use a generic load/store implementation
...
Instead of having word/halfword/byte implementations for load and
store we have only one generic version. It reduces code duplication
and actually ended up making the code run faster on my computer for
some reason.
2015-05-25 16:27:09 +02:00
Lionel Flandrin
1a4038c156
Added remote GDB support over TCP
...
For now only dumping registers is supported. No memory access or
breakpoints.
2015-05-25 16:26:15 +02:00
Lionel Flandrin
4de6ac4349
Handle SDL events for cleanly exiting the emulator
2015-05-25 16:26:15 +02:00
Lionel Flandrin
415e1eb067
Implement draw offset in OpenGL renderer
2015-05-25 16:26:15 +02:00
Lionel Flandrin
a3092cf793
Implement basic OpenGL renderer using SDL2
2015-05-25 16:26:15 +02:00
Lionel Flandrin
78138b545d
Implement GPU GP1(0x02): Reset Command Buffer
2015-05-25 16:26:15 +02:00
Lionel Flandrin
28d0161119
Implement GPU GP1(0x02): Acknowledge IRQ
2015-05-25 16:26:15 +02:00
Lionel Flandrin
2821bb8069
Implemented placeholder for GP0(0x2C): gp0_quad_texture_blend_opaque
2015-05-25 16:26:15 +02:00