omf2097-remastered-trailer.mp4
Sound on. A fan trailer: 1994 on an old PC in the game's colors, then 32 years later in HD, the new robots and arenas, and a mod made from scratch in OMF Studio, cut to Hadal Static's Twenty Ninety-Seven (Remix). Watch it in 1080p60.
In One Must Fall 2097 (Diversions Entertainment, 1994), pilots climb into 90-foot war machines and fight their way up a corporate tournament. It was one of the great DOS fighting games, and it has been freeware since 1999.
This project brings it back. It is a faithful reimplementation of the game's engine that plays the original game files, as a free app for Windows, macOS and Linux or in a browser. Play it exactly as it looked in 1994, or remastered in HD with new effects, modes and tools. One key, F2, switches between the two at any moment, even mid-fight.
Every robot, arena, mode and quirk of the original, following the reverse engineering of OpenOMF. The soundtrack plays through a port of the game's own music driver. | 3,200+ images redrawn in HD, widescreen arenas with depth, dynamic light and particles, smooth motion, and sharp text at any resolution. | LAN games, fourteen languages, a training lab, replays and clips, new modes, a robot workshop, mods and the OMF Studio mod tools, gamepads with rumble, touch controls, and it works offline. |
Download the game, free, for your computer. Nothing to install: each download is the whole game in one file (on a Mac, an app in a zip), ready to run from anywhere.
Your computer | Download |
---|---|
Windows 10 or 11, 64-bit (most PCs) | The game · OMF Studio |
Windows 10 or 11 on ARM (Snapdragon PCs) | The game · OMF Studio |
Windows 10, 32-bit | The game · OMF Studio |
macOS 12 or later on Apple silicon (M1 and later) | The game · OMF Studio |
macOS 12 or later on Intel | The game · OMF Studio |
Linux on x64 (AppImage) | The game · OMF Studio |
Linux on ARM64 (AppImage) | The game · OMF Studio |
OMF Studio, the mod tools, is the same program opening straight into Studio (the game opens it too, from Extras). Everything is included: the game, its HD artwork and its music, about 240 MB. The release notes list what's new.
The first start on Windows, macOS and Linux
- Windows may say it protected your PC: the files aren't signed yet. Choose More info, then Run anyway. The game runs on Microsoft's WebView2, which Windows 10 and 11 have. Windows XP, 7, 8 and 8.1 can't run it: WebView2 left them behind in 2023, and XP never had it.
- macOS: unzip the app and move it to Applications. It isn't notarized by Apple yet, so the first time macOS won't open it: go to System Settings › Privacy & Security and choose Open Anyway, once. For LAN games, let it find devices on your local network when it asks.
- Linux: let the AppImage run as a program (in its file's properties, or
chmod +x
in a terminal), then start it. Some distributions need FUSE 2 for AppImages (thelibfuse2
package), and the Noto fonts for Chinese, Japanese, Korean, Hindi, Bengali and Arabic.
Or play it online, with nothing to install: it runs in any modern browser, on a computer, a tablet or a phone, and keeps working offline once it has loaded.
On the first start, one screen sets you up: the original 1994 look in a single press, or the remastered graphics, effects, announcer and music the way you like them. Everything can be changed later in Options.
Games used to come with a booklet, so this one does too. The 32-page manual has the story, the controls, how to fight, every robot's moves, the pilots, the arenas and tips from the pros, with a one-page quick start on page 2.
Player 1 | Player 2 | |
---|---|---|
Move, jump, duck | Arrow keys (Home, PgUp, End, PgDn for diagonals) or the numpad | Q W E, A D, Z X C |
Punch | Enter | Left Ctrl or F |
Kick | Right Shift | Left Shift or G |
Special (one press) | / or numpad − | H |
Scrap, destruction, Fire & Ice (one press, once turned on) | , . ; | R T Y |
Esc pause · F1 help · F2 classic or remastered · F11 fullscreen · Print Screen screenshot · on a Mac, hold Fn for the F keys
Gamepads, touch screens, one-button specials and every other key
- Gamepads (Xbox and other standard controllers) work out of the box, even beside the keyboard: X, Y or RB punch, A, B or RT kick, LT or LB fire a special (or the classic layout: A punch, B kick). They rumble with hits, blocks, throws, wall slams and knockouts.
- One-button specials (on from the start, Options › Controls › Special button): the special button alone, or with forward, back, down or up, fires one of the robot's special moves, and its air special in a jump. The original motions work as always.
- Finisher keys (off from the start, Options › Controls › Finisher keys): once a fight is won, one key does the robot's scrap, another its destruction (the scrap first), a third its Fire & Ice move (in the Fire Pit, the scrap and the destruction first). The special button does the next finishing move, on a gamepad too. The original motions work as always.
- Your own keys: a modern keyboard layout (WASD for player 1), and any key rebound in Options › Controls. Keys and buttons (also in the pause menu) shows every action on the keyboard and the controller.
- Touch controls on phones and tablets: a stick under your left thumb, punch, kick, special and pause buttons.
- Anywhere: F3 next song (your own music), Alt+Enter fullscreen (on a Mac also Ctrl+Cmd+F), F12 screenshot (in the desktop app; screenshots, clips and videos go to the OMF 2097 Remastered folder in your Downloads). The mouse works in every menu.
- Training: F4 reset, F5 record the dummy, F6 play it back, F8 frame data, F9 hitboxes.
- Replays: Space pause, ← → step (or skip ahead while playing), ↑ ↓ speed, I O mark a clip, V save it as a video, G as a GIF, K keep the replay.
The same moment, both ways. F2 switches at any time.
Classic | Remastered |
---|---|
|
|
Everything from the original is here, playing its own data files:
- 11 robots, every move, special and throw, and 10 pilots plus Major Kreissack, each fighting their own way.
- 5 arenas and their hazards: the Danger Room's spikes, the Power Plant's electrified fences, the Fire Pit's fireballs and the Desert's strafing jets.
- Fire and Ice, the one-player game's two secret opponents, as the 1994 program hides them: on Champion or harder, a destruction in the Fire Pit and then the robot's Fire & Ice move send it through the floor to fight Fire, an enhanced Katana in the burning pit below, and on Ultimate on to Ice, a translucent Shadow in the frozen one.
- Every mode: one and two players, the demo, the full tournament career with the mech lab, upgrades, training and the newsroom, the scoreboard, the intro and every ending.
- The original music and sounds, through a port of the game's own music driver.
The menus were tidied up without losing anything: the three ways to play first (the two player game is now Multiplayer, with LAN games beside it), then More modes, Extras and Options. And a few things the 1994 menus promised now work, like the defensive throws, knock down and block damage rules.
Remastered fights get a layer of modern effects, driven by what happens in the fight:
Effects | What they add |
---|---|
Particles | Sparks and flares on hits and blocks, dust from falls, throws and wall slams |
Lighting | Hits, fire, energy and projectiles light up the arena and the robots |
Impact | Shockwaves on heavy hits, the knockout camera |
Atmosphere | Each arena's own: embers, sand, dust, floodlights, camera flashes in the crowd, and in the new arenas snow, aurora, rain, lightning, neon and bubbles |
Note
The effects are only for the eyes. They never touch the game's state or its random numbers, so a fight plays out exactly the same with them on or off (a test checks it). Each group can be turned off in Options › Graphics › Effects.
All of this is new, and none of it changes how the original plays unless you use it.
Multiplayer in the main menu is the original two player game, and more:
- Local: two players on one computer, sharing the keyboard or with controllers, as in 1994.
- LAN: fight a friend on another computer of your home network, in the desktop app on Windows, macOS or Linux (a browser can't reach other computers by itself, so the web version doesn't offer it). One of you hosts a game, the other picks it from the games found on the network (or types the host's address), and it starts by itself: both screens say who plays whom and on which side, then you meet at the robot select screen. You both pick a pilot and a robot, the host picks the arena, and the fight starts once you've both pressed punch. A bar at the bottom of the screen always says whose move it is, and YOU and READY show over the players' portraits.
- Online: coming soon.
Both computers play the very same fight, each running the game itself, tick for tick: they only tell each other what their player pressed (the same determinism that makes replays work). The host's gameplay options are used (speed, rounds, power and the advanced rules), both games must be the same version with the same mods on (on any of the three systems), and they keep checking that their fights agree. The first time you host, Windows may ask whether the game can use the network: allow it on private networks. A Mac asks whether it may find devices on your local network: allow it. On Linux with a firewall on, open port 2097 (TCP and UDP). LAN fights are saved as replays like any other.
The game speaks English, German, Japanese, Chinese, Korean, Hindi, Bengali, Spanish, Portuguese, French, Arabic, Russian, Danish and Swedish: the original game's texts (its menus, help pages, the news reports, the pilots' trash talk, the endings) and everything the remaster adds. It starts in your language: your browser's on the web, your system's in the app. Options › Language lists them all, each written in itself, and switches at once; your choice stays. English and German are the game's own 1994 texts, umlauts and all. The other languages are new translations, drawn in the original pixel font where its letters reach (Ã, Ê, Ø... are made in its style) and in your system's fonts for Cyrillic, Chinese, Japanese, Korean, Devanagari, Bengali and Arabic (right to left), sharp in both looks.
Training (in More modes) puts you against a dummy that never goes down, with health that refills after every combo. The pause menu's Training lab brings the tools of modern fighting games:
- Frame data for both robots (startup, active, recovery, advantage) and hitboxes: hits in this game are pixel exact, and you can see why.
- Record the dummy and let it play your recording back, or answer the moment it can act (a reversal) with any of its moves.
- Combo trials for every robot, each with a demo. The combos were found by searching the game itself and checked against all eleven robots.
Every fight is saved (Extras › Replays keeps the last 40, and any you mark). Watch them at any speed, step
frame by frame, jump anywhere, and save a clip as an MP4 video or an animated GIF. Replays are shared as the
original game's own .rec
files.
- Arcade: eight fights against better and better pilots, Kreissack last.
- Survival: one round after another, with only the health you have left.
- Time attack: five fights against the clock.
- Records: your statistics, the best results of each mode, and 20 achievements to show off (nothing is locked behind them).
Build your own robot from the parts of the remaster's new robots: one's frame, another's head, a third one's special
moves, a size, a weight class and three colors. The game turns it into a full fighter on the spot, every sprite, move
and HD picture, ready for training or a fight. Robots are shared as small .omfbot
files.
Make a tournament of your own from the installed ones: fewer opponents, their robots as they were or the new ones,
more or less prize money. It shows up in Tournament play like the others, and is shared as a .omftrn
file.
- A painted main menu: the robot on its stage in layers of painted parallax, under a spotlight, searchlights and camera flashes, the view leaning toward your mouse.
- Two announcers, Victor and Kristen, call the rounds, the knockouts and the winners, and after a fight a newsreader reads the TV report aloud, names and all.
- Victory screens: the winner, a line of theirs, and the fight in numbers.
- A fight camera (if you want it) that comes in close when the robots do.
And the credits are fought out. Scored to Twenty Ninety-Seven (Remix) by Hadal Static, a song about One Must Fall 2097: the 1994 logo is struck by lightning on the drop, then, on the monitor of an old PC dressed in the game's colors, each credit pilots a robot in its own colors against something the remaster had to beat (tech debt, spaghetti code, pixel noise, dead air) and wins, every final blow landing on the beat and every winner's card flying onto the tower (Play the credits on the main menu, or Extras › Credits).
And more
- Move lists in the pause menu: every special move, throw and finishing move of both robots.
- F1 help at any time, with the game paused behind it.
- Your own music: drop songs onto the window, and they play in fights or everywhere.
- Arena acoustics (sounds echo like the stadium or the steel Danger Room) and an impact bass under heavy hits.
- Achievements announce themselves the moment they're earned.
- Auto pause when you switch to another window.
Four robots and four arenas were made for the remaster, in the spirit of the originals. They are not part of the 1994 game, which stays as it was: they come with it as a mod, off until you turn on New robots and arenas in Extras › Mods (or on the first start's setup screen).
Robot | Style | Special moves |
---|---|---|
GLACIER | A heavy ice juggernaut: slow, strong, tough | Ice Lance ↓↘︎→ P, Glacial Ram ↓↙︎← K, Frost Spikes ↓↘︎→ K |
TEMPEST | A light, fast wind robot with high, floating jumps | Gale Blast ↓↙︎← P, Cyclone Kick ↓↘︎→ K, Sky Dive ↓ K in the air |
HELIX | An industrial driller with a spiral drill and a claw | Drill Rush ↓↘︎→ P, Corkscrew →↓↘︎ P, Drill Bit ↓↙︎← P |
SPECTRE | A phantom with forearm lasers and a cloak of blades | Photon Beam ↓↘︎→ P, Phase Shift ↓↙︎← K, Shadow Strike ↓↘︎→ K |
They play like the originals: the full set of moves, a throw, a scrap and a destruction finisher, the player's three colors, and a computer that knows how to fight with them. With the mod on, they join the robot select screen (a third row), the computer's opponents and the robots Plug trades in tournaments.
- Orbital: a space station's hangar with the Earth in its window. Dust floats in the low gravity, and now and then a shuttle passes outside.
- Ice Cave: a frozen cavern under the aurora. Snow blows in, frost mist creeps over the ice, shooting stars fall over the mountains.
- Rooftop: a skyscraper's roof in the rain above a neon city. Lightning flashes over the skyline as a hover-car cruises by.
- Abyss: a glass dome on the sea floor. Bubbles rise, light ripples over the floor, a submersible glides past.
The robots and arenas are 3D models (src/gen
), rendered into the game's own formats. The robots' HD frames
are rendered in Blender from the same models (how), and the arenas' HD backgrounds were
painted over their renders by an image generation model. All four arenas are true widescreen, with their own music,
acoustics and moving scenery.
Mods add robots, arenas and pilots that play exactly like the game's own: every animation, move and hit point, in
both looks, in every mode and in replays. Drop a .omfmod
file onto the game to install it, and turn it on or off in
Extras › Mods.
OMF Studio makes them. It opens from Extras › OMF Studio (or download it on its own, beside the game), and it works in the game's own formats, pixel for pixel. The new robots and arenas are a mod too: open them in OMF Studio to see how every animation, move and HD picture is put together.
- Robots: start from a copy of any robot, the workshop's parts, or a blank figure. Draw every frame in the game's palette, place the hit points, and set each move's input, damage and the victim's reaction.
- Arenas: start from a copy or a picture, then add hazards, scenery and music.
- Pilots: portraits, lines, a personality for the computer to fight with, and an ending.
- HD artwork for the remastered look: templates to paint over, or pictures rendered from a robot's 3D model.
- Test it in the game right from Studio: a fight, the computer against itself, training or the one-player game.
Then install it, or build the
.omfmod
file to share. Every change can be undone.
The mod format and every editor are explained in docs/MODDING.md.
The game data and the HD artwork come with the repository, so it takes a minute to get it running:
git clone https://github.com/Jared-woodruff/OMF-2097-Remastered.git
cd OMF-2097-Remastered
npm install && npm run dev # then open http://localhost:5173
Command | What you get |
---|---|
npm run build |
The web version in dist/ : a static site that works from any folder and offline after the first visit |
npm run desktop:build |
The desktop app for the system you build on: the program on Windows, the app on macOS, the AppImage on Linux |
npm test |
The test suite: the real game logic, run headless against the original data |
npm run manual |
The game manual, as a PDF |
docs/BUILDING.md has the prerequisites, every other command (a lean web build, your own copy of the
game data, the HD artwork pipeline) and how the remaster's own content is made. The release downloads for every system
are built by GitHub Actions when a release is published (.github/workflows/release.yml
).
%%{init: {'theme': 'base', 'themeVariables': {'background': '#04061f', 'primaryColor': '#0b1142', 'primaryTextColor': '#e7eaf3', 'primaryBorderColor': '#0000f3', 'secondaryColor': '#060926', 'tertiaryColor': '#04061f', 'lineColor': '#5a6cff', 'clusterBkg': '#060926', 'clusterBorder': '#2b3bcf', 'edgeLabelBackground': '#04061f'}}}%%
flowchart LR
subgraph sim["Game simulation (a faithful port)"]
S1["Scenes, robots, AI"] --> S2["Animation scripts"] --> S3["Draw list"]
end
S3 --> CL["Classic renderer<br/>indexed 320 × 200, VGA palette"]
S3 --> RM["Remastered renderer<br/>HD artwork, depth, upscaler"]
sim -. "cosmetic events" .-> FX["Effects<br/>particles, lights, camera"]
FX --> WP["World pass<br/>lighting, haze, shockwaves"]
RM --> WP --> PP["Bloom, light shafts, post"]
Part | Built with |
---|---|
Language and build | TypeScript 7, Vite 8 |
Graphics | WebGL2: the classic VGA pipeline, HD reconstruction, particles, lighting and post-processing |
Sound | Web Audio, an AudioWorklet mixer and a port of the game's MASI music driver |
Desktop app | Tauri 2: WebView2 on Windows, WebKit on macOS and Linux |
Tests | Vitest: 350 tests that run the game itself, headless, against the original data |
- The HD artwork is matched to the game's pictures by a fingerprint of their pixels, so the game's code doesn't know it's there, and each HD pixel follows its original's palette: player colors, fades and flashes work as in 1994. It loads per scene, as the game needs it.
- It keeps up: the remastered renderer watches its GPU time and lowers its internal resolution when a GPU can't. With every effect on, a frame takes about 8 ms on an RTX 4080 at 1920 × 1200.
- docs/ARCHITECTURE.md explains how the code is organized and how it maps to the original's C reference. Want to help? Start with CONTRIBUTING.md.
- The remaster: Jared Woodruff (human coder), Claude Opus 5.5 in Max Mode (AI coder), and OpenAI GPT6-ASTRA in Ultra Mode (the HD artwork).
- The credits' song: Twenty Ninety-Seven (Remix) by Hadal Static, used with the artist's permission.
- One Must Fall 2097 © 1994 Diversions Entertainment, published by Epic MegaGames, freeware since 1999. This is an unofficial fan project, not affiliated with or endorsed by its makers; all trademarks belong to their owners.
- OpenOMF (MIT): the open-source reimplementation whose reverse engineering this port follows.
- The announcers' voices: Victor and Kristen from the ElevenLabs voice library, performed with Eleven v4 and finished with FFmpeg.
- Also built with: Hyllian's xBR-lv2 shader (MIT), the Orbitron typeface by Matt McInerney (SIL OFL 1.1), Tauri, Vite, TypeScript and Vitest.
The source code is released under the MIT license. The original game's files and the artwork made from them are included on the game's freeware terms instead: free of charge, never sold. See NOTICE.md.