# librw: a re-implementation of the RenderWare Graphics engine

> Re-implements a large part of the RenderWare Graphics middleware API as a portable C++ library that reads and writes its DFF model and TXD texture files for PS2, D3D8, D3D9 and Xbox and is meant to convert them between platforms. Direct3D 9 and OpenGL backends render the scenes, while PS2 rendering works only as a test. README names rendering GTA as its use; BSP world files are not supported.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/aap/librw>
- Primary source: <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.md>
- Catalog page: <https://awesomerea.org/resources/librw-renderware-reimplementation-case/>
- Record JSON: <https://awesomerea.org/resources/librw-renderware-reimplementation-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/librw-renderware-reimplementation-case/index.md)

## Requirements & limits

- **Prerequisites:** As a library, librw needs no particular original files: applications hand it RenderWare DFF models and TXD texture dictionaries, such as those of the games they render. The repository ships no game data, but its demo tools include four small DFF sample models whose provenance it does not state.
- **Prerequisites:** Builds use premake5 (a premake5.exe is committed) or CMake 3.8+, selecting a NULL, GL3 or D3D9 platform and, for GL3 (OpenGL 2.1+ or ES 2.0+), GLFW, SDL2 or SDL3 for windowing. premake targets Windows x86/amd64, Linux x86/amd64/ARM and PS2, and the CMake files add PS2 and Nintendo Switch toolchains; a skeleton application framework with bundled Dear ImGui accompanies the demo tools.
- **Scope:** The reviewed master snapshot dates from 2026-08-26; CMake reports version 0.0.1 and the repository has no tagged releases. README calls librw a re-implementation of RenderWare graphics, “or a good part of it”: not all pre-instanced PS2 DFFs load and BSP is unsupported, and TODO lists morphing, several pipelines and PS2 rendering as open. ARCHITECTURE.MD says some design decisions follow the original RW and others are the author’s own.
- **Testing evidence:** The GitHub Actions workflow builds and packages 14 configurations: Windows D3D9, GL3 and null, macOS and Ubuntu GL3 and null, PS2 in a ps2dev container and Switch in a devkitPro container. It runs no tests, and the repository has no test suite or comparison with original RenderWare output.
- **License:** LICENSE applies MIT to librw; the bundled Dear ImGui and ImGuizmo code carries its own licence files, and RenderWare itself and any game assets keep their owners’ rights.

## Primary sources

1. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.md>
2. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/ARCHITECTURE.MD>
3. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/TODO>
4. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/CMakeLists.txt>
5. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.cmake>
6. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/premake5.lua>
7. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/.github/workflows/build.yml>
8. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/src>
9. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/tools>
10. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/skeleton/imgui>
11. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/LICENSE>

## More in Games

- [MechRewired: rebuilding MechWarrior 2 from original game data](https://awesomerea.org/resources/mechrewired-mechwarrior-2-case/index.md) · Case study
- [Nanolathe: a documented Total Annihilation engine reimplementation](https://awesomerea.org/resources/nanolathe-case/index.md) · Case study
- [nfs-mw: a Rust reconstruction of Need for Speed: Most Wanted](https://awesomerea.org/resources/nfs-mw-case/index.md) · Case study
- [NuVelocity Engine: reimplementing Reflexive's Velocity Engine](https://awesomerea.org/resources/nuvelocity-engine-case/index.md) · Case study
- [OpenAWE: an open reimplementation of Remedy’s Alan Wake engine](https://awesomerea.org/resources/openawe-alan-wake-engine-case/index.md) · Case study
- [OpenBattlefield2: an unfinished Refractor 2 engine reimplementation](https://awesomerea.org/resources/openbattlefield2-refractor-engine-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
