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 |