Missile Attack!
September 13, 2026 · View on GitHub
Static recompilation of Missile Attack! v1.1 (Peter Siamidis, 1992) from its shipping Win16 binary to native C.
Built on the pcrecomp toolchain.
Project Status: P0 complete, P1 not started
What this is for
This is the smallest complete Win16 game in the collection, and that is the whole point of it.
MISSILE.EXE 87,360 bytes NE, Microsoft linker 5.14, Windows, PROTMODE
2 segments (1 CODE, 1 DATA), 20,975 bytes of code
165 relocations -- 152 of them imports, 13 internal
imports: MMSYSTEM, win87em, KERNEL, GDI, USER
One code segment. Twenty-one kilobytes. Every other NE project here — El-Fish (121 segments), Bang! Bang!, Microsoft Bob, Catz, The Even More Incredible Machine (34 segments) — has segmentation as a first-class problem. This one does not have segmentation at all.
That makes it the right fixture for the 16-bit pipeline itself. A change to
ne_parse.py, ne_decode.py, ne_xref.py or lift16.py can be checked
end-to-end here in the time it takes to read the diff, and if it breaks, the
failure is in the change and not in some segment-boundary edge case. The
toolkit's own history says why that matters: three of the five NE bugs found
during Bang! Bang! were off-by-one errors in table parsing that only showed up
as missing functions, never as an error message.
It is also a real game with a real window procedure, not a synthetic test:
WNDPROC seg 1:0x01AC
ABOUTMSGPROC seg 1:0x22A8
HOWTOMSGPROC seg 1:0x233C
HIGHMSGPROC seg 1:0x248A high scores
ENTRYMSGPROC seg 1:0x23D0
Five named entry points across 21 KB means nearly every top-level control path is identified before disassembly.
The one interesting bit
It imports win87em — Borland's 8087 floating-point emulator — alongside
MMSYSTEM. That is an x87 surface in a 16-bit NE image, which is exactly what
forced disasm/fpu_decode.py to exist during El-Fish. This is a 21 KB version
of the same problem and a much faster place to test changes to it.
MISSILE.WAV and friends go out through MMSYSTEM; four WAVs, no MIDI.
Where it goes next (P1)
Straight through the standard 16-bit path. There is nothing unusual to plan around, which is the point.
Provenance
Shareware, distributed with a $5 registration request:
If you enjoyed Missile Attack! and want to encourage me to create more games, please register your version by sending $5 to: ...
Shareware is not public domain. The binary stays local; original/ is
gitignored.
Layout
missileattack/
original/ win3_MissileA.zip
original/ex/ extracted
analysis/
docs/
Credits
Missile Attack! © 1992 Peter Siamidis. This project neither contains nor distributes any part of it.