6.8 KiB
Tyra - alpha 1.29.1
Open source game engine for PlayStation 2™
View Demo »
Report Bug
·
Request Feature
Table of Contents
About The Project
Contributors wanted
I will be grateful for any help
Samples
Branches
- Master - monthly releases - tested on PS2 & PCSX2.
- Develop - daily builds - can be unstable.
About project
Goal of Tyra project is to provide simple API for PS2 game creation, so you can just run PS2 emulator, grab .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 Tyra is needed? 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
- 3D support - VU1 "Path 1 rendering"
- 2D support - PNG & BMP
- Frustum culling, backface culling
- OpenGL adaptions: Perspective projection, lookAt camera
- Texture support - .bmp and png
- Mesh loaders: ".obj", ".dff" (RenderWare, GTA:SA) and ".md2" (Quake II)
- Threading support
- Animation support for obj and md2
- Audio support - .wav and .adpcm
- Pad support
Built With
Getting Started
In our Discord channel, there is detailed tutorial which will help you with setting up the all environment - starting from installing dependencies and ending on emulator setup or intellisense.
Prerequisites
This is an example of how to list things you need to use the software.
- 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!
cd src/samples/floors
make rebuild-engine
make
Extra info
- BMP loader needs some polishing so be sure that you exporting BMP with 24bit: RGB888 and without 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 triangle primitive type.
Roadmap
Roadmap for next master release:
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.
Tyra team
Sandro Sobczyński - sandro.sobczynski@gmail.com
Michał Mostowik - mostek3pl@gmail.com
Thanks
Without these guys, everything would be harder:
- Dr Henry Fortuna - for code sources
- Rick Gaiser - for help and new GCC!
- Lukasz D.K. - for huge archive of PS2 stuff-
- Guilherme Lampert - for code sources
- Jesper Svennevid, Daniel Collin - for openvcl's code samples
- Whole PS2DEV team
- Manieq - for nice splash screens!
- And so many other guys. Thanks!
Project Link: https://github.com/h4570/tyra