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
QUICK ACCESS
CORE FEATURES
AI Game Generation
"Make me a platformer!" -> Full playable game
OpenAI/Gemini async job-based generationQuickJS Sandbox
User games run safely in isolated environment
WASM-powered JavaScript executionRedis Leaderboards
Top 10 high scores per game
Persistent across sessionsDraft System
Save WIP games, version history
Job recovery & auto-saveAuto Screenshots
Server-side PNG generation
Perfect for Reddit post thumbnailsHOW 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