MCPcopy Index your code
hub / github.com/abagames/peekpoke

github.com/abagames/peekpoke @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
165 symbols 372 edges 17 files 3 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PEEKPOKE

Tiny minimum retro fantasy console having only two commands: peek and poke.

Sample game 'BOMB SNAKE'

BOMB SNAKE

Games for PEEKPOKE can be written in simple JavaScript code. PEEKPOKE games run in the browser of any PC or mobile device.

Memory map

memory_map

You can draw pixels or text by writing a number to a specific address in memory (poke), or get the input status of a key by reading a number from the address (peek).

Getting started

Download docs/getting_started/index.html and write your game code in the <script> element. Open index.html in a browser and play the game.

Use with npm

% npm i peekpoke

The peekpoke library must be imported and initialized.

import "peekpoke";
initPeekpoke({ setup, loop, enableSplashScreen: false });

function setup() { ... }

function loop() { ... }

Sample snippets

Draw a pixel

// Draw a red pixel at (x, y).
poke(ADDRESS_VIDEO + x + y * VIDEO_WIDTH, COLOR_RED);

Draw a text

// Draw a 'A' text at (x, y).
poke(ADDRESS_TEXT + x + y * TEXT_WIDTH, "A",charCodeAt(0));

Set text color

// Make the text color green.
poke(ADDRESS_TEXT_COLOR + x + y * TEXT_WIDTH, COLOR_GREEN);

Set text background color

// Make the text background color blue.
poke(ADDRESS_TEXT_BACKGROUND + x + y * TEXT_WIDTH, COLOR_BLUE);

Check keystroke state

// Check if the up key is pressed.
if (peek(ADDRESS_KEY + KEY_UP) & KEY_STATE_IS_PRESSED) ...
// Check if the left key is just pressed.
if (peek(ADDRESS_KEY + KEY_LEFT) & KEY_STATE_IS_JUST_PRESSED) ...
// Check if the X key is just released.
if (peek(ADDRESS_KEY + KEY_X) & KEY_STATE_IS_JUST_RELEASED) ...

Buzzer

// Buzzer at 500 (50 x 10) Hz.
poke(ADDRESS_BUZZER, 50);
// Stop buzzer.
poke(ADDRESS_BUZZER, 0);

Other sample games

Core symbols most depended-on inside this repo

Shape

Function 159
Class 4
Method 2

Languages

TypeScript100%

Modules by API surface

docs/bundle.js44 symbols
docs/bombsnake/main.js24 symbols
src/main.ts21 symbols
docs/dashracket/main.js17 symbols
docs/beebees/main.js17 symbols
docs/memorymap/bundle.js9 symbols
src_memorymap/main.ts8 symbols
src/virtualPad.ts7 symbols
src/buzzer.ts6 symbols
src/text.ts4 symbols
src/keyboard.ts4 symbols
src/screen.ts2 symbols

For agents

$ claude mcp add peekpoke \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page