RES-9000 Console

RES-9000

Retro Entertainment System - 9000 Series

"Where retro gaming meets AI generation"

WHAT IS IT?

RES-9000 is an authentic 8-bit game console built directly into Reddit posts. Users describe a game in natural language ("Make a platformer with coins and enemies"), and AI generates a complete, playable retro game in ~30 seconds — complete with sprites, music, and game logic.

128×128pixel display
4-bit16 colors max
8×8pixel sprites
60 FPSgame loop
4-chNES audio
~30sgeneration
AI GENERATIONOpenAI/Gemini creates complete games from natural language prompts
QUICKJS SANDBOXGames run safely in WebAssembly with no network/DOM access
LEADERBOARDSCompete for high scores on every game, synced via Redis
CROSS-PLATFORMPlay on desktop (keyboard) or mobile (touch controls)
AUTHENTIC NES CONSTRAINTS
🎮D-pad + A/B controls
🎨64 sprite limit
🔊Pulse, triangle, noise
📜1024px scroll width

CORE FEATURES

AI Game Generation

"Make me a platformer!" -> Full playable game

OpenAI/Gemini async job-based generation

QuickJS Sandbox

User games run safely in isolated environment

WASM-powered JavaScript execution

Redis Leaderboards

Top 10 high scores per game

Persistent across sessions

Draft System

Save WIP games, version history

Job recovery & auto-save

Auto Screenshots

Server-side PNG generation

Perfect for Reddit post thumbnails

HOW IT WORKS

1
PROMPTUser: "Make snake game"
2
GENERATEOpenAI generates game code
3
VALIDATEQuickJS loads & validates
4
RENDER60 FPS game loop → canvas
5
COMPETEHigh scores → Redis
6
SHAREReddit post + screenshot
"Where retro gaming meets AI generation"

CONSOLE SPECS

DISPLAY

Resolution128×128 pixels
Color Depth4-bit (16 colors)
Sprite Size8×8 pixels
Max Sprites64 simultaneous
Background128×16 tile grid

AUDIO

Channels4 NES-style
Sound Slots8 concurrent
Note RangeC2-C6
EnvelopeADSR support
Typespulse, triangle, noise

INPUT

ControlsNES D-pad + A/B
KeyboardArrows + Z/X
Polling60 FPS
SpecialSpace/Enter
StyleClassic 8-bit

SOUND SYSTEM DEMO

Click keys or press A S D F G H J K to play notes

NES Channels:SQUARE (Pulse)TRIANGLENOISE

SOUND DEFINITION

sounds: {
  jump: {
    type: "square",
    notes: ["C4", "E4", "G4"],
    duration: 0.1,
    envelope: { attack: 0, decay: 0.05 }
  },
  coin: {
    type: "triangle", 
    notes: ["E5", "G5"],
    duration: 0.15
  }
}

SPRITE & TILE SYSTEM

SPRITE GRID (8×8 PIXELS)

← 8 pixels →8 px

PALETTE (4 COLORS MAX)

0
1
2
3

CODE DEFINITION

sprites: [
  ["01100110",  // Row 0
   "12211221",  // Row 1
   "12222221",  // Row 2
   "12222221",  // Row 3
   "01222210",  // Row 4
   "00122100",  // Row 5
   "00011000",  // Row 6
   "00000000"]  // Row 7
]

ARCHITECTURE

Loading diagram...

KEY COMPONENTS

QuickJS WASMSandboxed JS execution for user games
AI GenerationOpenAI/Gemini async job-based
Canvas Renderer128x128px, 60 FPS, 64 sprites
Redis StorageLeaderboards, drafts, game data

GAME PATTERN

function metadata() {
  return {
    title: "My Game",
    description: "A fun retro game",
    controls: ["arrows: move", "z: jump"]
  };
}

QUICK START

terminal
$ npm install# Install dependencies
$ npm run login# Auth with Reddit
$ npm run dev# Start dev mode
$ npm run testbed# Local testing (no Devvit)
$ npm run launch# Deploy to production

Click any command to copy

TECH STACK