OpenTri PSP

From GameBrew
openTri
Psp02.png
General
AuthorTomaz, Raphael, InsertWittyName
TypeGame Engine
Version2020
LicenseMIT License
Last Updated2020/06/05
Links
Download
Website
Source

openTRI is a game engine for the PSP, written in pure C. It was an original project by Tomaz, Raphael and InsertWittyName? and was released to public under GPL.

See also updates by SamRH.

Features

  • triGraphics:
    • GU setup (all possible pixelformats)/Doublebuffering functionality.
    • Primitive drawing (lines, outlined/solid/gradient rect, rotated solid rect, solid/outlined/gradient circle, filled/outlined/gradient triangle, solid/gradient star).
    • Image drawing (rotated and non-rotated).
    • Color ops (and/or/not etc. see pspgu.h for a full list.
    • Image tinting (through the sceGuTexFunc functionality).
    • Constant alpha for images.
    • Control blend modes.
    • Colorkeying.
    • Clipping windows.
    • Image animation (concated images/spritesheets) drawing (normal and rotated).
    • Full render to image functionality.
    • Basic render to texture functionality (more complete renderbuffer functionality in tri3d).
  • Images:
    • Load PNG (all formats), TGA (all formats), own format (supports mipmaps, animation, palettes and different compressions like RLE and GZIP).
    • Load and draw huge images (>512x512).
    • Save PNG (with/without alpha), TGA (with/without RLE compression, with/without alpha), own format.
    • Supports paletted images as well as all other PSP formats (4444,5551,5650,DXT1/3/5).
    • Swizzle/unswizzle images, upload images to VRAM/download to RAM.
    • Image animation control (set loops, start, pause, reset, update).
    • Load images animations as spritesheets from any supported format.
    • Capture framebuffer into image struct for saving (screenshots) or other use.
    • All image loads are refcounted (no double images in RAM).
  • Fonts:
    • Based on pgeFont, loads any TTF/OTF font and creates a bitmap font, useable for printing text very fast.
  • tri3d:
    • Setup 3D mode (perspective/ortho) with depth buffer.
    • Pseudo Fullscreen Anti-Aliasing.
    • Smooth Dithering (for 16bit render modes).
    • Renderbuffer interface - create renderbuffers, set renderbuffer as rendertarget or texture.
    • Set framebuffer as rendertarget or texture.
    • Set depthbuffer as texture (with support for a color ramp [palette] to map depth values to colors).
    • A couple of high performance rendertarget convolution (blur) filters (up to 9x9).
    • A quaternion based camera object with keyframing support.
    • An OpenGL style texture manager keeping most frequently used textures in VRAM with automatic mipmap generation and prioritizing textures to stay in VRAM.
    • A highly flexible particle engine supporting billboards, real 3D particles and line particles. Support for different particle interactions (bind to emitter, global force function (all particles), local force function (per particle), vortices (turbulences)) as well as different blend modes for the particles and up to 8 color/alpha fades during lifetime, giving a simple non-linear control of particle looks, also supports growing particles, selfrotation, glitter, global gravity, wind, emitter burnout and animated particle textures, plus all that can be driven by simple scripts so you can change particle systems without having to recompile your code.
    • Simple model management/rendering.
  • triAudio:
    • Support for AT3 playback for background music (using ME).
    • Support for WAV playback for sound effects.

triNet:

    • Support for connecting to sockets as client/server.
  • Generic libraries:
    • VRAM memory manager.
    • Generic fast memory manager for object heaps.
    • Stream interface with buffered streams layer and asynchronous buffered file reader for higher performance Memstick reading, as well as support for (zlib) compressed streams that are decompressed on the go
    • A high performance memcpy through VFPU usage.
    • VMath, VFPU Vector/Matrix math library.
    • pmplib for decoding videos (AVC+MP3/AAC/AT3) with support for fullscreen playback (intro videos) or giving control over how the video gets displayed (ingame videos that can be used as additional briefing incoming or be displayed on 3D objects as texture).

User guide

Homebrew Showcase

External links

Advertising: