About
Jackal is an overhead run-and-gun game originally released in 1988 by Konami for the Nintendo Entertainment System. The player plows through six hostile territories in a jeep equipped with a machine gun and grenades that can be upgraded into increasingly powerful missiles. Along the way, the player destroys opposing forces and rescues prisoners of war. Each stage ends with a boss, culminating in a confrontation with the enemy's super fortress.
Press the Play button below to launch an enhanced-graphics desktop browser port of Jackal.
Controls
Jackal supports both keyboard and gamepad input. The default controls are:
| Action | Keyboard | Gamepad |
|---|---|---|
| Up | Up Arrow | D-pad Up |
| Down | Down Arrow | D-pad Down |
| Left | Left Arrow | D-pad Left |
| Right | Right Arrow | D-pad Right |
| Grenade | X | A |
| Gun | Z | X |
| Start / Pause | Enter | Menu |
You can change the button mapping by selecting Options → Input from the in-game menu.
Browser Menu
Jackal opens with a browser menu that provides New Game and Continue buttons.
New Game starts a new game. Continue resumes your previous game. Jackal saves your progress so you can close the tab—or even close the browser entirely—and return later to continue playing.
While playing outside fullscreen mode, a hamburger button appears in the upper-left corner of the game. Pressing it pauses the game and returns you to the browser menu.
The browser menu also provides:
- Fullscreen — Makes the game fill the entire screen.
- Scaling — Controls how the game is resized to fit the display.
- Volume — Adjusts the game volume.
- Reset — Erases saved state and restores settings to their defaults.
In-Game Menu
The in-game main menu provides Start and Options.
Selecting Options opens another menu with:
- Input — Remap keyboard and gamepad controls.
- Difficulty — Choose between Normal and Hard.
- Done — Return to the previous menu.
History
I originally ported Jackal to Java in 2013 using the Slick2D and JInput libraries. I studied Jackal in the FCEUX NES emulator and recreated its stages and mechanics through observation.
I released the port as a Java applet that ran in a web page and as a downloadable desktop version. As technology evolved, both options became increasingly impractical. Browsers abandoned Java applets, while the desktop version required players to download and run an executable and install Java—something many people understandably avoided because of the hassle and security concerns. The game also relied on platform-specific native libraries that became increasingly difficult to run reliably on modern systems.
In 2026, I rewrote the port in TypeScript and adapted it to modern web browsers. The new version once again lets visitors launch the game directly from a web page and adds a few modern features, including save-state support. The game itself remains fundamentally the port I created in 2013.
Differences
I applied a pixel-art upscaling algorithm to the graphics. Then I manually enhanced them, adding detail not present in the low-rez NES artwork.
I gave the player's jeep, enemy vehicles, aircraft, gun turrets, and bombs smooth rotational movement. Modern browsers can readily apply affine transformations to images, while the NES had to represent changing directions with a limited number of separately drawn sprites. I used those sprites as keyframes and interpolated the orientations between them. I even blurred the spinning blades of helicopters.
I used similar graphical transformations for other effects. Explosions billow and scale as they expand, while flames use semitransparency. Bosses erupt in elaborate bursts of fire when hit. Aircraft cast semitransparent shadows on the ground. When the rescue helicopter takes off, its shadow scales and falls away as the helicopter gains altitude. The same effect is used for the Chinook that drops off the player's jeep in the prologue.
I also introduced many subtle graphical details. Gunboat turrets rotate as they aim. The doors covering underground guns slide smoothly open before the guns rotate and target the player. The bodies of defeated enemy soldiers gradually fade away.
I animated the cutscenes, which originally consisted of static images.
I made many environmental animations smoother as well. Water waves and conveyor belts animate continuously, and the flashing lights surrounding the rescue helicopter pads fade in and out. Broken stone columns cylindrically roll along the ground before gradually coming to rest.
This port is not simply Jackal run through an upscaling filter. I wanted to preserve the look and character of the original game while taking advantage of modern hardware to add detail, animation, and effects not possible on the NES.
Hard Mode
After completing the NES version of Jackal, the game begins again from the first stage at a slightly higher difficulty. This second loop contains more aggressive enemies, but the changes are relatively subtle.
My version features a separate Hard Mode that can be selected directly from the in-game menu. It uses the same six maps as the original game, but I substantially increased the number of enemies and made the stages much more intense. It is intended to feel like a genuinely different challenge rather than a lightly modified replay of the game.
If you can survive Hard Mode, you'll be rewarded with an extended ending sequence. If you need help in either mode, try entering the Konami Code on the title screen.
Resources
This port is a reimplementation, not an emulation. It does not run or include the original NES ROM.
The source code for the project is available in the meatfighter/jackal-js repository.
The Java desktop version is available as a ZIP file. To use a gamepad with the Java version, connect and enable it before starting the game.
Download and extract the ZIP, then run the launcher for your operating system:
- Windows:
run-windows.cmd - Linux:
run-linux.sh - macOS:
run-macos.sh
Java 21 or newer is required.
Acknowledgements
Konami developed and published Jackal for the NES. It credits H. Hori and H. Yanagisawa with programming; M. Fujiwara, Yoichi Yoshimoto, and Junko Maruo with character design; Kenji Shimoide, Naoki Satō, and Tomo Yamamoto with visual design; and Shinya Sakamoto and Atsushi Fujio with music. This port would not exist without their brilliant work.
This project is an unofficial recreation of and tribute to the original game, developed as a hobby programming project. It is not affiliated with, sponsored by, or endorsed by the creators, publishers, trademark owners, or other rights holders of the game it references. Preexisting game content, including graphics, music, sound effects, characters, names, logos, and trademarks, remains the property of the applicable rights holders.
I provide this port free of charge. It contains no advertising and generates no revenue.