Files
Turing-Complete-PacMan/readme.md

56 lines
1.9 KiB
Markdown
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:
```sh
./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