The Even More Incredible Machine
September 23, 2026 · View on GitHub
Static recompilation of The Even More Incredible Machine for Windows (Presage Software Development / Dynamix / Sierra, 1993) from its shipping Win16 binary to native C.
Built on the pcrecomp toolchain, and directly on operationneptune and gizmos — the two Borland projects already in the collection.
Project Status: P0 complete, P1 not started
Reconnaissance only. Nothing has been lifted, and nothing builds or runs yet.
What is here is the P0 write-up and analysis/ne_parse.txt.
What P0 found
TEMIM.EXE 306,688 bytes NE, Microsoft linker 5.10, Windows, PROTMODE
34 segments (27 CODE, 7 DATA), 197,832 bytes of code
4,743 relocations
imports: KERNEL, USER, GDI -- and nothing else
Built with Borland C++ (Borland C++ - Copyright 1991 Borland Intl. sits in
the string table), version 1.01c.
Three things make this a clean target:
It imports nothing but the Win16 core. KERNEL, USER, GDI. No multimedia
DLL, no third-party runtime, no VBRUN. The entire shim surface is the one
tools/ne/ already generates, and win16.py's PASCAL stack-purge table
already covers it.
It names its own entry points. The NE entry table carries four exported symbols, and they are not decoration — they are the Windows callbacks, which means the message loop and the dialog procedures are identified before a single byte is disassembled:
TIMWINDOWPROC seg 8:0x0000 the main window procedure
CONFIRMDLGPROC seg 7:0x08F6
STATUSDLGPROC seg 7:0x05EC
DESTROYALLMONSTERS seg 7:0x0D66
It is Borland, and the collection has two Borland projects that work.
Operation Neptune is playable and ships its own linker map — it is the
calibration target for disasm/score_recovery.py. Gizmos & Gadgets runs its
whole attract sequence. Borland's CRT starts up nothing like MSVC's, which is
precisely why having two working references matters more than the third project
being easy.
197 KB of code across 27 segments puts this between Bang! Bang! and El-Fish in size. El-Fish's 121 segments and 2,236 functions already lifted and linked, so 27 is not the hard part.
The one complication
The .PRS files are the content — TIM16.PRS, TIM256.PRS, TIMWIN.PRS,
2.4 MB across the three. Puzzle definitions are .TIM files, small (740 B to
3.4 KB) and there are nine on the disc. Music is plain MID.
The data disk note in the string table is worth reading before assuming this is standalone:
The data disk requires the original version of 'The Incredible Machine' in order to run.
That is about the data disk, not this executable, but it says the file
formats are shared with TIM 1 (1992) — so whatever .PRS turns out to be, it
probably reads two games' content, not one.
Where it goes next (P1)
tools/ne/ne_parse.py→ne_decode.py→ne_xref.py. Seed function starts from the four named entry points and the relocation targets.- Score the recovery. Borland large-model far calls are what
disasm/largemodel16.pywas built for on DinoPark Tycoon (3,609 of 3,611 far calls resolved); check whether this is large model before assuming. - Lift with
tools/lift/ne_lift.pyand link against pcrecomp'sruntime/win16/. That runtime and the NE generators (gen_image,gen_segments_h,gen_win16_stubs,gen_unresolved_stubs) are upstream now, so lift → compile → link is a closed loop for a new Win16 target. .PRSbefore anything renders.
Layout
tim/
original/ win3_TemIM3x.zip
original/ex/ extracted
analysis/
docs/
Credits
The Even More Incredible Machine © 1993 Presage Software Development / Dynamix / Sierra On-Line. This project neither contains nor distributes any part of it.
The code and documentation here are MIT; LICENSE spells out that the grant stops at our own work and does not reach the game or anything lifted from it.