Comment by glimshe

17 days ago

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