Refactor of Matrix and Vector3 class.
Tyra alpha 1.1.0
Open source renderer and game engine for PS2 (PlayStation 2™).
View Demo (soon) »
Report Bug
·
Request Feature
Table of Contents
About The Project
Samples
Contributors wanted
I will be grateful for any help, Discord: h4570#3402
About project
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.
Acronyms
- 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
Tyra features
- 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!
Built With
Getting Started
To get a local copy up and running follow these simple steps.
YouTube tutorials soon!
Prerequisites
This is an example of how to list things you need to use the software and how to install them.
- PS2 DEV environment - PS2DEV
- At least #674b6f4 PS2SDK (01.12.2020) - PS2SDK
- PS2 Emulator. For example PCSX2
Installation
- Clone the repo
git clone https://github.com/h4570/tyra.git
- Get into src folder and compile it!
make
Extra info
- 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.
Roadmap
Roadmap moved to github kanban:
https://github.com/h4570/tyra/projects/1
See the open issues for a list of proposed features (and known issues).
Contributing
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
License
Distributed under the Apache License 2.0 License. See LICENSE for more information.
Contact
Sandro Sobczyński - sandro.sobczynski@gmail.com
Thanks
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/h4570/tyra