AirStrike

Version: 
1.0
Release date: 
Friday, 31 July, 2026

License:

Interface:

Authors/Port authors:

A two-player aerial combat game. Fly biplanes, drop bombs, fire cannons, and dogfight against an opponent or an AI over a scrolling landscape — first player to 5 points wins.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).

Following ones are the download links for manual installation:

AirStrike v. 1.0 (31/7/2026, Martin Iturbide) Readme/What's new
Airstrike test 6 Note that the game is not finished. You can fly around and shoot things, try out the physics engine etc, but the game is very repetitive. For installation instructions see INSTALL, for (a little) code documentation see doc/code.txt and doc/how-it-works.txt When in the game press ESC for a menu. The game should never crash. If it does then please send a gdb backtrace to ulfek@ifm.liu.se. You can check the debug output on stdout and stderr to see if there is a problem with the data files, or maybe some other error. There are a few user-configurable options in the file 'airstrikerc', see that file for more information. At the moment you must edit this file to turn on sound or to select graphics 'quality'. See NOTES for more release related info. For things that need to be done, see doc/TODO. You can help! If you are good at Povray, have some nice sound effects to contribute, like to write some (networking?) code or just have some ideas, please email ulfek@ifm.liu.se. --Ulf ------------------------------------------------------ Airstrike - ArcaOS / OS/2 Port Notes ====================================== This document covers building and running Airstrike on ArcaOS (and compatible OS/2 environments) using SDL2 and GCC 9.2 / kLIBC. The original game was written for Linux with SDL1. This port migrates the rendering and audio layers to SDL2 and adds the OS/2-specific build support needed to produce a native PM executable. Requirements ------------ - ArcaOS 5.x (tested on ArcaOS 5.1 / OS/2 eCS 2.45) - GCC 9.2 with kLIBC (available via the ArcaOS package manager / RPM) - SDL2 (SDL2_dll.a + headers under C:/usr/include/SDL2) - SDL2_image (SDL2_image_dll.a + headers) - SDL2_mixer (SDL2_mixer_dll.a + headers) - WLINK (Open Watcom linker, used via EMXOMFLD) - GNU make - REXX (standard OS/2 component) Directory layout ---------------- airstrike.exe Compiled binary air_os2.txt This file README.md General readme compile-air.cmd REXX build script src/ C source files src/Makefile.os2 OS/2-specific makefile src/air.def Module definition file (WLINK) data/ Game graphics and sound files Building -------- Open an OS/2 command prompt (CMD.EXE) in the Airstrike directory and run: compile-air.cmd This sets the required environment variables, enters the src/ directory, runs make with Makefile.os2, and writes the build log to compile-air.log. The environment variables set by the script are: EMXOMFLD_TYPE=WLINK EMXOMFLD_LINKER=wl.exe EMXOMFLD_PRELINK=0 These are required so that the GCC driver calls WLINK (Open Watcom) rather than EMXOMFLD for linking, producing a proper OS/2 LX executable. Compiler flags used: -O2 -Zomf -Zmt -Wall -DINLINE=inline -DUSE_SOUND -Zstack 512 (linker) The linker requires air.def (included in src/) for the module definition and BLDLEVEL information. Running ------- Run from the Airstrike directory: airstrike.exe Configuration is read from airstrikerc in the current directory. Create or edit this file to set options (see README.md for the full option list). Example airstrikerc: sound 1 nr_players 1 screen.width 800 screen.height 600 Controls -------- Right player (default): Arrow keys Steer / accelerate Enter Fire Left player (default): W A S D keys Steer / accelerate Space Fire Common: Esc Open in-game menu / pause S Save screenshot (screenshot.bmp) Key bindings can be remapped from the Players Setup menu (press Esc in-game). Port changes from the original SDL1 source ------------------------------------------ The following changes were made to port from SDL1 to SDL2 on OS/2: 1. SDL2 window and surface model SDL_SetVideoMode() replaced with SDL_CreateWindow() + SDL_GetWindowSurface(). The game continues to use software surfaces (SDL_Surface) for all rendering. No SDL_Renderer or GPU textures are used. 2. SDL2 API replacements - SDL_SetVideoMode -> SDL_CreateWindow / SDL_GetWindowSurface - SDL_UpdateRect -> SDL_UpdateWindowSurface - SDL_UpdateRects -> SDL_UpdateWindowSurfaceRects - SDL_DisplayFormat -> SDL_ConvertSurface (matching display format) - SDL_DisplayFormatAlpha -> SDL_ConvertSurfaceFormat (ARGB8888) - SDL_SetAlpha -> SDL_SetSurfaceAlphaMod / SDL_SetSurfaceBlendMode - SDL_SetColorKey -> SDL_SetColorKey (SDL2 signature differs) - SDL_GetKeyState -> SDL_GetKeyboardState (indexed by scancode) - SDL_FULLSCREEN -> SDL_WINDOW_FULLSCREEN - SDL_WM_SetCaption -> window title passed to SDL_CreateWindow - SDLKey -> SDL_Keycode 3. Dirty-rectangle system The sprite engine's dirty-rectangle update functions (dirty.c) needed the SDL_Window* handle to call SDL_UpdateWindowSurface(). A window pointer was added to the sprite_global struct in sprite.h and populated at startup. dirty_setup() is re-called after any fullscreen toggle so the system reflects the new surface dimensions. 4. Keyboard handling SDL2's SDL_GetKeyboardState() returns an array indexed by SDL_Scancode, not by SDL_Keycode. The keyboard controller now converts each stored keycode to a scancode via SDL_GetScancodeFromKey() before indexing the state array. 5. Include paths All SDL headers updated from <SDL.h> / <SDL_image.h> / <SDL_mixer.h> to <SDL2/SDL.h> / <SDL2/SDL_image.h> / <SDL2/SDL_mixer.h>. 6. Build system src/Makefile.os2 added for GCC/kLIBC. Produces .obj (OMF) objects and links with WLINK via the EMXOMFLD wrapper. compile-air.cmd is a REXX script with CRLF line endings (required by OS/2 REXX) that automates the build. Known issues / limitations -------------------------- - Fullscreen support depends on the ArcaOS display driver. If toggling fullscreen from the in-game menu has no effect, your DIVE driver may not support the requested video mode. - The game is hard-coded to an 800x600 playing field. Running at a different screen resolution is not tested on OS/2. - Sound requires SDL2_MIXER.DLL on the LIBPATH. If sound does not play, verify SDL2_MIXER.DLL is accessible. - This is based on Airstrike 1.0 pre6, which is a development snapshot. Some gameplay features described in the original documentation may be incomplete. Contact ------- Original game: Ulf Ekstrom http://icculus.org/airstrike ArcaOS port: Martin Iturbide
 hobbes.os-2.in/download/os2/games-6/action-5/AirStrike_1-0p6_r1.zip
Record updated last time on: 31/07/2026 - 22:56

Translate to...

Add new comment