Files
Turing-Complete-PacMan/readme.md

1.9 KiB
Executable File

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-2: 256x192 screen resolution, 17x17 tile

Build script

File inclusion is currently not supported by the game, so a build.ts script it provided that will concatenate the content of the hard-coded .asm files and output the result on stdout.

It also convert the PPM assets (map and sprites) into ASM raw values representation and append it after all the code.

Usage example:

./build.ts > /path/to/the/game/schematics/architecture/Symfony/sandbox/main.asm

The script is build over Deno's API, so you'll need to have a deno binary in your PATH to use it that way.

Assets

PPM files that may be converted into the game's raw data format.

Map

The assets/map.ppm file contains a representation of the initial state of the map. The corresponding tile values are:

PPM 8bits channels Tile
0x00_00_00 0 (Empty)
0xFF_00_00 1 (Wall)
0xFF_FF_00 2 (Coin)

Sprites

The corresponding in-game color values are:

PPM 8bits channels In-game RRRGGGBB value Name
0x00_00_00 000_000_00 Black
0x00_00_FF 000_000_11 Blue
0x00_FF_00 000_111_00 Green
0x77_77_77 010_011_10 Gray
0xFF_00_00 111_000_00 Red
0xFF_00_FF 111_000_11 Pink
0xFF_80_00 111_100_00 Orange
0xFF_FF_00 111_110_00 Yellow
0xFF_FF_FF 111_111_11 White