First open source renderer and game engine for PS2 (PlayStation 2™).
View Demo (soon) »
Report Bug
·
Request Feature
Goal of Tyra project is to provide simple API for PS2 (PlayStation 2™) game creation. So you can just run PS2 emulator, grab your .obj file, and put it into live in a seconds. Project is on early stage, so a lot of stuff is changing from release to release.
YouTube tutorials soon!
Why PS2 game dev is so different? Raw PS2 development can be a big challenge. PS2 it's pretty low-level and there are a lot of stuff that you must do from scratch.
Tyra takes care for you, and rendering, coprocessors communication and many more low-level stuff is already done.
- EE (Emotion Engine) - whole set of processors and subsystems that make up the PlayStation 2
- GS (Graphic synthesizer) - configurable rasterizer and texture mapper. Has only 2MB~ memory for textures, but for the opposite have very high transfer rate, so you can switch textures in the blink
- VU0 - programmable (ASM) vector processor that is accessed by inline assembly code injected into C program.
- VU1 - programmable (ASM) vector processor, which is similar to vertex shader. Accessed via DMA.
- IOP - I/O processor which enables access to peripheral devices, such the game controller
- VU1 rendering (PATH 1), double-buffered
- GIF rendering (PATH 3), double-buffered
- Frustum culling, backface culling
- OpenGL adaptions: Perspective projection, lookAt camera
- Texture support (.bmp loader)
- Mesh loaders: ".obj", ".dff" (RenderWare, GTA:SA) and ".md2" (Quake II)
- Threading support
- Lighting support (now PATH3 only)
- Animation support
- Audio support
- Pad support
- TODO: physics, ADPCM and many more!
To get a local copy up and running follow these simple steps.
YouTube tutorials soon!
This is an example of how to list things you need to use the software and how to install them.
- Clone the repo
git clone https://github.com/ps2-tyra/tyra.git
- Get into src folder and compile it!
make
- Textures can be saved using GIMP. Just replace red with green color, and when exporting select .bmp, 24bit: RGB888, without saving information about colors
- If you want to run .elf in PCSX2, be sure that you have version >=1.6 and Host access enabled in PCSX2 configuration file.
- If you want to use your own .obj file, please check "triangulate faces" in blender. PS2 is supporting only trinagle primitive type.
https://github.com/ps2-tyra/tyra/projects/1
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/amazing-feature
) - Commit your Changes (
git commit -m 'Add some amazing-feature'
) - Push to the Branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Distributed under the Apache License 2.0 License. See LICENSE
for more information.
Sandro Sobczyński - sandro.sobczynski@gmail.com
Without these guys, everything would be harder:
- Dr Henry Fortuna - Abertay University (code sources)
- Lukasz D.K. (huge archive of PS2 stuff)
- Guilherme Lampert - PlayStation London (code sources)
- Jesper Svennevid, Daniel Collin - Microcode (openvcl, code samples)
- Whole PS2SDK/PS2Scene team
- And so many other guys. Thanks!
Project Link: https://github.com/ps2-tyra/tyra