create repository with functional basic implementation
This commit is contained in:
56
readme.md
Executable file
56
readme.md
Executable file
@@ -0,0 +1,56 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user