Madcap modders have ported PS2 platformer Jak and Daxter to PC

Audio player loading…

Emulation is impressive work, often the only route to preserving games, but in recent years some skilled programmers have started tackling full-on decompilations of classic games so that they can be studied and played on newer hardware. Now a team has taken on and managed the shocking task of porting Jak and Daxter, Naughty Dog’s PS2-era action game, to a form that works on the PC. 

Recent comparable projects have taken on Super Mario 64 (opens in new tab) and The Legend of Zelda: Ocarina of Time (opens in new tab). Unlike those projects, however, Jak and Daxter wasn’t written in widely-understood programming language C. Its code was written in a dialect of Lisp, already a language with fewer programmers, called GOAL that was developed in-house by Naughty Dog. So you’re talking about an all-but-lost programming language that’s based on another rather rare language. 

There can’t be many programmers out there with the skills to work on this kind of a port. Nonetheless the people behind the project managed to decompile the GOAL game code into a human-readable form, develop a compiler to make GOAL run natively on x86-64 systems, make a tool to extract game assets, and then make a tool to repack the game assets into a format that their port can use.

This is the kind of project that it takes a dedicated tech-head to accomplish. It’s the kind of moonshot I would advise anyone against starting. For that reason I would like to mimic the sentiment of this Tweet (opens in new tab): “Damn, these decomps are getting insane!”

See more

You can find the proper code and documentation for the work on the Jak PC port over on Github. The port isn’t finished yet, but the project FAQ estimates it’s about 80% done. “Most of the renderers and sound are finished, but there are still a few bugs. The project is still in development,” it says. 

The Jak project is playable now, though: You’ll need your own ISO of Jak and Daxter, and the latest release (opens in new tab) from the Github to extract it.

You may also like...