Turing Complete PacMan

This program is intended to be used as "level validation" for the IO level (in which player add support for keyboard, timer and screen display).

It thus should be able to run on the architecture and ISA the players have built at that point, and must be able to run smoothly on a simulation speed of 1 MHz or above.

About this repository

The main branch contains a minimal implementation of the game.

The following branches contains variations, allowing comparisons of performances, visuals, gameplay, ...

  • res-0-prerendered:
    • 80x60 screen resolution
    • 5x5 tile resolution
    • initial screen prerendered
    • no sprite rotation
  • res-2:
    • 256x192 screen resolution
    • 17x17 tile resolution
  • res-2-prerendered:
    • 256x192 screen resolution
    • 17x17 tile resolution
    • initial screen prerendered
    • no sprite rotation

Build script

Both scripts uses Deno's API, so you'll need to have a deno binary in your PATH.

PPM to Symfony assembly

Output the Symfony assembly representation of the given PPM file.

Usage example:

./ppmToAsm.ts map map ./assets/map.ppm > ./dist/map.asm
./ppmToAsm.ts sprite robot ./assets/sprites/robot.ppm > ./dist/robot.asm

Bundle and minify

Bundle all .asm and .ppm files and output the (optionaly minified) result.

Usage example:

./build.ts --minify main.asm > pacman.asm

# To beforehand convert all ppm files
./build.ts --ppm --minify main.asm > pacman.asm

Documentation

Description
A Pac-Man implementation for the Symfony ISA of the Turing Complete game
Readme 210 KiB
Languages
Assembly 67%
TypeScript 33%