Reverse-Engineering Raiders of the Lost Ark for the Atari 2600

1 day ago (github.com)

I played the hell out of this game at around 7 y/o. My father read the manual and helped me with it. I played it recently under emulation and was a little shocked that I remembered the entire game.

This documentation is very, very nice. I particularly like seeing how the scoring worked. It was always a mystery to me, playing the game, as to why my scores were so low. Escaping the prison room looks like it was the culprit. It would be interesting to go back and read the manual with knowledge of the game's internals.

that's awesome. it was a deeply mysterious game to me as a kid. the first mysterious game i ever encountered really. hell of a vibe.

Raiders of the Lost Ark is one of the best games for the Atari 2600 and I say this without any nostalgia for the title. It's an early adventure game and has a kind of complexity absent in most Atari 2600 games which, based on today's standards, are largely stupid. I've discovered things about this game years later by reading a walkthrough... It has a point system similar to the Sierra games because some activities are actually optional, a breakthrough feature.

In fact, the Howard Scott Warshaw works are great: Yars Revenge, with simple but classic gameplay and E.T., the victim of one of the most unfair public lynchings of a game ever.

Wow this brings back memories of frustration. We could never figure out what that game wanted us to do, and there was no Internet or even Nintendo Power to help.

  • This seems to be true of a lot of old games. Feels (to me, today) like the point was to discover everything yourself and share found information in social circles like your school friends. Now we expect the game to be a self–contained asocial experience.

I’ve performed many experiments using AI to reverse-engineer old games like this one, and it looks like the newest generation of models has no trouble with it. They’re actually awesome.

Even with the current models, we might be able to automatically reverse-engineer all those old games, decode all assets, and even rewrite them in a more sensible language than assembler.

  • For the Atari 2600, Assembly is almost a necessity because of the very tight "racing the beam" timing required to draw things correctly on the screen. Your argument applies to some other platforms and games, though (not that many among the oldest ones, to be honest).

    • For the uninitiated: 78 clock cycles per horizontal line (Y coordinate), minimum 2 clock cycles per CPU instruction, 3 if it accesses memory.

    • "Racing the Beam" is a great book by MIT press that covers the specifics of the Atari 2600 platform. The 2600 sparked a number of innovations _largely because of_ the limitations of the platform forces you to think outside the box.

    • There’s a small misunderstanding here. Reverse engineering by annotating a disassembly file is fine. However, the next obvious steps would be to write a sensible, high-level documentation of the internals of the game and then port it to a high-level language. Indeed, whether this would run on the original hardware might be questionable for such an Atari Game. But have you seen modern C compilers like Oscar64 [0] for such old hardware? Never say never …

      [0] https://github.com/drmortalwombat/oscar64

Awesome game. Winning was HARD. I don’t think I ever got the max score. Maybe time to try again!