Play the games of Pie in the Sky's POWER engine family on modern Windows and Linux: those made with the 3D Game Creation System, and those on POWER 3D and the engines derived from it. With widescreen, mouse look and a real 3D view.

Beta 0.2

PIEMulator is in beta: not every game has been played through to the end yet. Games are not included: you need the game's own files. Questions and bug reports: Discord.

Support Ricardo Reis on Ko-fi

Update 0.2 available: what's new
  • Linux: PIEMulator now runs on Linux too, as well as Windows.
  • Original pace: the games run at the speed of the PCs they were made for. Before, much of each game ran too fast: the machine gun, grenades (which could go off at your feet), animations, and enemies and your own moves.
  • Still smooth: the view keeps your display's refresh rate, so turning, walking and jumping stay smooth between the game's frames.
  • New Engine slider in the game list, to choose the game's frame rate, from 10 to 70 frames a second (see The game list).
  • Mouse look: walls and floor turn together, and objects keep facing you while you turn.
  • OpenGL view: the floor no longer shifts slightly against the walls as you walk.
  • Minimal HUD: the item boxes sit beside the weapon at the bottom left, and the row of objects to drop shows on top of them.
  • Fixed: after Alt+Tab or Alt+F4, W A S D and E could stop working in the next game.
  • Game list: a tidier layout; the start options are now called Maximized and Fullscreen, with the sliders beside them.

PIEMulator runs the DOS games of Pie in the Sky Software’s POWER engine family on today’s computers: Pie in the Sky’s own, from Lethal Tender (1993) on; the games made with its 3D Game Creation System (GCS, 1993-95); and the games on POWER 3D and the engines derived from it. It also runs GCS itself, with its level editor, paint program and build tools. No DOS box is needed. You can play the games just as they looked in 1995, or turn on an OpenGL view with widescreen, mouse look and modern controls.

Screenshots

Features

Native Windows and Linux

64-bit builds for both. No DOSBox, no virtual machine.

Fast and smooth

Each game runs as native code, made on your computer as it loads. Games keep their original pace, while the view stays smooth at your display's refresh rate.

A real 3D view

An OpenGL view draws the game's world as true 3D, at your screen's resolution. Switch to the original renderer at any time.

Widescreen

The view fills a wide window or monitor, with the HUD kept in proportion.

Mouse look and WASD

Turn and look up and down with the mouse, walk with W, A, S and D, fire with the mouse button.

Your own controls

Rebind any key or mouse button, for every game or for one, in play, in the inventory and in the menus.

Sound and music

Sound Blaster effects and AdLib music, as the games played them.

Over a hundred games

See the list below.

GCS itself

The level editor, GCS Paint and the build tools work too, so you can still make a game.

A game list in the spirit of DOS

Pick a game and play. Its window stays the same from the list to the game, ready for screen recording.

No original code inside

PIEMulator is not built from the source code of GCS, its engine or any game. Pie in the Sky’s source code was never used. Everything PIEMulator knows about those programs was learnt from the programs themselves, as they were shipped.

The download does not contain the original programs either, nor any recompiled code made from them. It holds only PIEMulator’s own code: a reimplementation of the PC the games were written for, and the tools that recompile a game.

Games are recompiled on your own computer, each time you play. When a game starts, PIEMulator reads the game’s own programs from your folder and turns them into native code in memory. When you close the game, that code is gone. Nothing made from a game is ever sent anywhere or shipped with PIEMulator.

Games

PIEMulator’s game list has over a hundred games. Pie in the Sky’s own:

  • 3D Game Creation System 1995
  • 3D Xmas Adventure: Santa's Rescue 1996
  • Industrial Killers 1995
  • Lethal Tender 1993
  • Meltdown 1995
  • Stop Nick Macki 1993
  • Terminal Terror 1994
  • Many more...

The many more are the games other people made with GCS, POWER 3D and the engines derived from them, from 1995 to the 2010s. Each runs from your own copy of its files; PIEMulator includes none of them.

Several of these were released in more than one version (shareware, registered, earlier or later releases); the list knows each of them. A game with adult content is left out of the list unless you ask for it (see Settings file).

Getting started

  1. Download the build for your system and extract it to a folder of its own, for example C:\Games\PIEMulator or ~/piemulator.
  2. Add your games. Make a folder named games next to piemulator, and put each game in a folder of its own inside it. Each game in the list has a usual folder name, shown on the right when you select it; a game in a folder with that name is found by itself. Or keep the game where it is and choose its folder with ….
  3. Start it. Run piemulator.exe on Windows, or piemulator on Linux. It opens the game list.
  4. Pick a game and press Play. The game starts in the same window, and the list comes back when it ends.

The game’s folder needs the game as it was shipped, its programs included. PIEMulator finds the game anywhere up to three folders deep inside it, so an unpacked archive can be used as it is. To use GCS itself, put its folder, named GCS, next to piemulator. For example:

C:\Games\PIEMulator\
    piemulator.exe
    games.ini
    GCS\                                                 GCS itself
    games\
        Lethal_Tender_(1993)_(Pie_in_the_Sky_Software)\
        Stop_Nick_Macki_(1993)_(Pie_in_the_Sky_Software)\
        ...

On Linux the games folder’s name is lower case.

The game list

Key Does
Enter Play the selected game
Tab Type the game’s folder
F2 Controls: the key bindings
F3 Save the folders and settings
F4 Sort the list by name, year or author
Esc Exit
A letter Jump to the games starting with it

On the right are the selected game’s name, author and year, anything a player should know about it, and the keys below. Under them:

Option What it does
Game data folder Where the game’s files are. Type it, or choose it with ….
Controls The key bindings, for this game or for every game (see Controls).
Save Saves the folders and the settings. Play saves them too.
Play Starts the game.
Maximized Every game’s window opens maximized.
Fullscreen Every game opens in fullscreen.
Engine How many frames a second the game itself runs in 3D play, from 10 to 70. The default, 17.5, is the speed of the PCs the games were made for, and keeps weapons, grenades and animations at their original pace. The view stays smooth whatever you choose.
Mouse Mouse sensitivity, from 0.25× to 2.5×.
Volume The volume of sound and music.

While playing

Key Does
= / - Less or more HUD: the full HUD; a minimal one with only the weapon, the readouts, health, the compass, the radar or map, and the item a door asks for, along the window’s edges; or none at all
Alt+Enter Fullscreen or a window
Alt+F7 Modern controls on or off
Alt+F8 Widescreen on or off
Alt+F9 The OpenGL view, or the engine’s own renderer
Alt+F10 Show the frame rates over the view
Alt+F11 Capture the mouse, or let it go
Alt+F12 Smooth textures and picture
Alt+any key Sends that key itself, not what it is bound to (to type a name, say)

Controls

While the 3D view is being played, PIEMulator adds modern controls. Each key or button below sends one of the game’s own keys, so the game handles it as it always did.

Press Does Game’s own key
W / S Walk forward / backward Keypad up / down
A / D Sidestep left / right Keypad 1 / 3
Mouse Turn, and look up and down in the OpenGL view  
Left mouse button Fire Ctrl
Right mouse button, E Pick up, read a memo I
Space Jump Keypad 0
Q Choose an object to drop S

All the game’s other keys still work: weapons 1 to 9, the map, Esc and the rest.

The default bindings

There are three sets of bindings: one while playing, one while you choose an object to drop, and one for the menus, the map and the pause and help screens. A key that isn’t listed sends itself.

Press Playing Choosing an object to drop Menus
W Walk forward W Up
S Walk backward S Down
A Sidestep left The previous object Left
D Sidestep right The next object Right
E Pick up, read a memo Drop it Choose (Enter)
Q Choose an object to drop Cancel (Esc) Q
Space Jump Space Space
Left mouse button Fire   The game’s mouse
Right mouse button Pick up   The game’s mouse

Some games come with bindings of their own, to match their controls. In Stop Nick Macki, whose 1993 engine kicks and fires with Space, the left mouse button and Ctrl send Space. The Controls screen shows these as the game’s defaults.

Controls (F2 in the game list) changes the bindings, for the selected game or for every game. There are three sets: Playing, Inventory (while you choose an object to drop) and Menus. Click an input and press the game’s key it should send, or choose Pick up, None, or Clear to go back to the default. Add input takes any key, mouse button or the mouse wheel.

The settings file

The game list keeps its settings in piemulator.cfg, next to piemulator (or in your user settings folder, if that one can’t be written). It can also be edited by hand:

start_maximized=1        # every game's window opens maximized
start_fullscreen=1       # every game opens in fullscreen
engine_fps=17.5          # the game's frame rate: 10, 11.7, 14, 17.5, 23.3, 35 or 70
mouse_sensitivity=1.5    # 0.25 to 2.5
volume=80                # 0 to 100
show_adult=1             # list games with adult content
bind.all.e=i             # E picks up in every game
bind.all.wheelup=2       # the mouse wheel picks weapons 2 and 3
bind.all.wheeldown=3
bind.all.menu.q=esc      # in the menus, Q backs out

What PIEMulator knows of each game (its name, folder, default bindings, and for a few games a frame rate of their own, used instead of the Engine slider) is in games.ini, next to piemulator. A games.ini in your user settings folder is read after it, to add games or change them, without touching the installed one.

Advanced: starting options and the command line
Variable or switch What it does
piemulator --play FOLDER Starts the game in that folder, as the game list would.
piemulator --root FOLDER P3D.EXE Runs one program from a folder, here GCS’s level editor.
GCS_WINDOW=1280x720 The window’s size at start.
GCS_RENDER=soft Starts with the engine’s own renderer.
GCS_WIDE=0 Starts with widescreen off.
GCS_SMOOTH=1 Starts with smooth textures on.
GCS_HUD=minimal / none Starts with the minimal HUD, or none.
GCS_MODERN=0 Starts with the modern controls off.
GCS_MOUSE_INVERT=1 Inverts looking up and down.
GCS_VSYNC=0 Doesn’t wait for the display’s refresh.
GCS_ENGINE_FPS=17.5 The game’s frame rate in 3D play, over the Engine slider and games.ini.
GCS_GAMETIME=0 Leaves the game’s speed as the original engine works it out, which runs a little fast on modern PCs.

Troubleshooting

The game list can't find a game

Select the game and choose its folder with …. The folder must hold the game as it was shipped, programs included; an installer or a compressed archive must be installed or unpacked first.

A game runs slowly

If the console says the game “is not a known game executable”, its program was changed or comes from a release PIEMulator doesn’t know. It still runs, but slower. Please tell us on Discord which game and release it is, so it can be added.

Windows warns that the program is from an unknown publisher

The beta builds are not signed yet; the warning does not mean anything harmful was found. Choose More info, then Run anyway. Or, before unpacking, right-click the downloaded .zip, choose Properties, tick Unblock and press OK.

Enemies and animations move less smoothly than the view

That is the original pace: the game itself runs at 17.5 frames a second, as on the PCs it was made for, while PIEMulator keeps the view smooth between its frames. To make them smoother, raise Engine in the game list; above the default, the machine gun, grenades and animations run faster than they should.

The mouse doesn't turn the view

The modern controls only take over while the 3D view is being played. If the mouse is still free, press Alt+F11 to capture it, and check that the modern controls are on (Alt+F7).

The controls don't match the game's instructions

The modern controls change them on purpose. Alt+F7 turns them off, for the game’s original keys. To change a single key, use Controls in the game list.

I can't type a name, or a letter does something else

Hold Alt while typing: Alt with a key sends that key itself, whatever it is bound to.

Something looks wrong in the OpenGL view

Press Alt+F9 to switch to the engine’s own renderer, and let us know which game and where.

On Linux, the folder picker doesn't open

It needs zenity or an xdg-desktop-portal. You can also type the folder: select the game and press Tab.

Limitations

  • No network, modem or serial play.
  • No joystick: it reads as absent, as on a PC without one.
  • PIEMulator is a beta. Not every game has been played through to the end.

Games are not included

PIEMulator does not include, sell or distribute any game, nor GCS itself, nor any part of them. To play, you need your own copy of the game’s files. Please don’t ask for copies of games in the project’s channels.

The games, GCS and the POWER 3D engine belong to their owners. PIEMulator, its developers and contributors are not responsible for unauthorised or illegal redistribution of copyrighted game files.

About

3D Game Creation System, POWER 3D and Lethal Tender are (C) Pie in the Sky Software. The games made with them belong to their authors.

PIEMulator is developed and maintained by Ricardo Reis. It is not affiliated with or endorsed by Pie in the Sky Software.

PIEMulator is free. It may not be sold, or included with anything that is sold, without permission.

Third-party software:

  • SDL 3 - zlib License
  • Capstone - BSD 3-Clause License
  • TinyCC - GNU LGPL 2.1, as libtcc.dll (libtcc.so on Linux), which you may replace with your own build (source, commit 43c7708b85681a2fd4451c8a541af4494a8919b2, unmodified)

The licences, and how TinyCC was built, come with the download, in its licenses folder.

Website: https://rickomax.github.io/piemulator
Discord: https://discord.gg/kKvzfqFTJ
Support the project: https://ko-fi.com/X8X3MRF5W