Posit-92 is my personal Pascal game engine written in Free Pascal targeting DOS, WebAssembly, and Windows, it’s 99% software rendering, and has the retro style graphics
I made it to build small games and interactive demos
The default resolution is 320×200, and supports running games in web browsers through WebAssembly, and natively on Windows using SDL2, and it’s possible to build for both x64 and x86

Why Pascal?
Why not? – It just works
If people can make games in Python, Ruby, or even Lua, I don’t see why I can’t use Pascal
Posit-92 is primarily a personal project. It exists because I enjoy working with Pascal, writing my own tools, and understanding how things work under the hood
The goal isn’t to compete with established game engines, in fact, I’m inspired by them. PICO-8, TIC-80, TempleOS have been my references designing the API and keeping everything as minimal as possible
By the time of writing, it’s been more than 1 year for the DOS version (since 9 May 2025), and it’s been almost 1 year for the WASM version (since 17 Nov 2025)
Philosophy
Pascal has been around for decades. It predates C++ and Java, and even C is younger than Pascal. Much of the core language and its familiar APIs have remained recognisable for decades, based on my experience on working with Turbo Pascal and the newer Object Pascal: Free Pascal. There are of course a few quirks, but different Pascal implementations target different platforms & CPU architectures
The API in general is pretty stable, for both Embarcadero Delphi & Free Pascal, even Free Pascal has some extent of compatibility with Delphi. However, I don’t like how they make it overpriced — I could’ve just bought a new gaming laptop or maybe paid a down payment for a new house or something
The DOS version has this philosophy “close to metal” where inline assembly is used mostly at the hot path: the pixel plotting & direct memory access stuff, so basically programmers have direct control over low-level operations, such as pixel plotting, the AdLib port R/W, or maybe SoundBlaster itself
Meanwhile, in general Posit-92 follows these:
- “Boringly predictable”
- “Less magic, more explicit responsibility”
The boringly predictable phrase here can be interpreted as “less engine surprises”, different from bigger game engines that have surprise quirks under the hood. This is why easing functions in Posit-92 don’t have clamping in the maths functions
The less magic, more explicit responsibility also correlates to the “boringly predictable” philosophy. Programmers (myself included) have the responsibility of, for example, clamping an easing range to 0.0 .. 1.0, rather than the engine itself that does it
Compared to the DOS version, the WASM and the Win64 versions simply don’t use inline assembly, but instead, the low-level control is shifted to something else:
- The WASM version has its own 2-tier memory manager, and
- Both the WASM & Win64 versions use hand-optimised software rendering implementation
Features
(TBA)
Showcase
(TBA)
Getting Started
Want to try it?
Clone the repo, inspect the examples, whether it be a demo project, or a test project, and start with hello_minimal
(Links to the GitHub repo, documentation, and the dedicated demoscene page [on my website])