trapezoid-core
This is the core of a PSX emulator trapezoid
.
It contains all the components of a working emulator, the rest is a frontend.
You can create your own frontend for this project, or use it as a server.
Components implemented
- CPU: Mips R3000A
- GPU: backed by
vulkano
.i.e. for now, you need a project running vulkano to use this
. - SPU: produce PCM frames that should be taken out regularly by the frontend.
- CDROM: can read the contents of a PSX CDROM, and can be used to load games
- Currently, no support for reading cdrom that contain multiple tracks.
- Support XA-ADPCM audio.
- MDEC: Able to decode MDEC frames and play videos
- GTE: Geometry Transformation Engine
- DMA: Direct Memory Access
- Timers
- Interrupts
- Memory: Hosts the whole memory as a
Box<[u8]>
and provides access to it.