Vectrex Studio embeds a custom cycle-accurate emulator (JSVecX) directly in the IDE. No hardware needed — compile and run instantly.
Emulator Panel
After a successful build the ROM loads automatically and emulation starts. The panel displays:
- Vector display — the actual Vectrex output, rendered with authentic beam visuals
- CPU registers — PC, A, B, X, Y, U, S, DP, CC flags, updated live
- Performance metrics — cycles per frame, FPS, total instruction count
- Cycle utilization chart — bar chart with a danger zone indicator when the frame budget is exceeded
Controls
| Button | Action |
|---|---|
| Play | Start or resume emulation |
| Pause | Pause emulation |
| Reset | Reset to startup state |
Debugger
The debugger supports source-level debugging in VPy files (requires Buildtools backend with debug_symbols = true) or assembly-level debugging in .asm files.
Setting Breakpoints
Click in the gutter (left margin of the editor) on any line to toggle a breakpoint. Breakpoints are:
- Persisted across sessions in SQLite
- Mapped to ROM addresses via the
.pdbdebug symbol file - Supported in both
.vpyand.asmfiles
Source-level breakpoints in
.vpyfiles require the Buildtools backend. The Core backend does not generate PDB files.
Debug Controls
| Key | Action |
|---|---|
| F5 | Continue (resume until next breakpoint) |
| F10 | Step Over |
| F11 | Step Into |
| Shift+F11 | Step Out |
Debug Panels
| Panel | Content |
|---|---|
| Debug | DEBUG_PRINT output and watched variables, updated every 100ms |
| Trace | Instruction-level execution trace (when enabled) |
| Memory | RAM inspector — raw bytes or grid view |
| BIOS Calls | Monitor which Vectrex BIOS routines are called and how often |
| PSG Log | AY-3-8910 register writes, tone/noise values |
Reading memory from VPy
DEBUG_PRINT(player_x) # prints value to Debug panel
DEBUG_PRINT_STR("score:") # prints labelAI Assistant — PyPilot
PyPilot is the built-in generative AI assistant. It understands VPy, the Vectrex hardware, and can control the IDE directly via the MCP server.
Supported Providers
| Provider | Type | Notes |
|---|---|---|
| Ollama | Local | 100% private, no API key, runs on your machine |
| Anthropic Claude | Cloud | Best reasoning quality |
| OpenAI | Cloud | gpt-4o / gpt-4o-mini |
| Google Gemini | Cloud | — |
| DeepSeek | Cloud | Free tier available |
| GitHub Models | Cloud | Requires GitHub PAT |
| Groq | Cloud | Fast inference, free tier available |
Local AI with Ollama
Run AI with zero cloud costs and full privacy:
brew install ollama
brew services start ollama
ollama pull qwen2.5:7b # recommended model (~4.7 GB)Then select Ollama (Local) in the PyPilot config panel. The IDE includes an Ollama Manager to download, switch, and delete models without leaving the app.
What PyPilot Can Do
- Generate VPy code from a natural language description
- Explain or refactor selected code
- Suggest fixes for compiler errors
- Create vector assets (
.vec) and music assets (.vmus) directly - Trigger builds and inspect output
- Add breakpoints and inspect emulator state — all via MCP
Slash Commands
| Command | Action |
|---|---|
/generate [description] | Generate VPy code |
/explain | Explain the current or selected code |
/fix | Suggest fixes for current compiler errors |
/optimize | Optimize selected code |
/clear | Clear current session |
MCP Server
The MCP server (ide/mcp-server/server.js) exposes the IDE on TCP port 9123, allowing any MCP-capable AI client (Claude, GitHub Copilot, etc.) to read code, trigger builds, inspect the emulator, and create assets.
The VS Code extension connects to the same MCP server, so you can use any AI assistant from VS Code with full access to the running IDE.