Skip to content

Regenerator 2000

Regenerator 2000 Logo

The Modern 6502 Disassembler

Regenerator 2000 is a modern, interactive disassembler for the Commodore 64 and other 6502-based systems. It combines the retro feel of Turbo Debugger with the power of modern tools like IDA Pro, offering two powerful workflows:

  • đŸ•šī¸ Manual Analysis — A fast, keyboard-centric terminal interface for hands-on exploration. Navigate code, define data regions, label subroutines, add comments, and iteratively refine your disassembly at your own pace.
  • 🤖 Automated Analysis — A built-in MCP Server lets AI assistants drive the disassembler programmatically. Paired with purpose-built skills, it can analyze entire programs — classifying blocks, tracing routines, and naming symbols — with minimal human intervention.

Use either workflow on its own, or combine them: let the AI do a first pass, then refine the results interactively.


At a Glance

Explore the regenerative power of Regenerator 2000 through its various views:

The Code View: The heart of the operation. Navigate and disassemble code, follow jumps, and label everything.

Disassembly View

The Data View: Inspect raw memory, spotting patterns in data and tables.

Hexdump View

Visualizing Graphics: Instantly see 8x8 character data.

Charset View

Sprite Gallery: View 24x21 sprites in all their glory.

Sprites View

Bitmap Mode: Visualize memory as a bitmap (HiRes or MultiColor).

Bitmap View

Structure Analysis: See how Regenerator 2000 analyzes and segments the binary into code and data blocks.

Blocks View

Live Debugging: Connect to VICE, view registers, memory, breakpoints, and step through code.

Debugger View


Key Features

  • 🚀 6502 & Undocumented Opcodes: Full support for the 6502 instruction set including undocumented opcodes.
  • ⚡ Fast TUI: Built with Rust for blazingly fast performance.
  • 🧠 Analysis: Automatically create labels and comments.
  • âĒ Undo/Redo: Experiment without fear.
  • đŸˇī¸ Labels & Comments: Rename subroutines and variables for readability.
  • 📂 Scopes: Organize code with namespaces.
  • đŸ”ĸ Enums: Define and apply three-tiered value-to-name mappings (System, Global, Project-specific) to replace magic numbers in disassembly and data with semantic names.
  • đŸ“Ļ Binary Unpacker: Cycle-accurate, background 6502 emulated sandbox to automatically unpack compressed C64 programs.
  • 🎨 Custom Themes: Personalize your experience with TOML-based theme files.
  • 🐛 VICE Debugger Integration: Connect to a running VICE emulator for live debugging — step through code, inspect registers, set breakpoints and watchpoints.
  • 🤖 MCP Integration: Collaborate with AI assistants for deeper analysis.
  • 💾 Project Saving: Save your work and resume later.
  • 📤 Export: Generate compilable assembly code for multiple assemblers, or HTML files for sharing. Exported HTML files include clickable cross-references for labels.

Quick Start

  1. Install:
cargo install regenerator2000
  1. Run:
regenerator2000 my_game.prg

When importing a new binary, use the Import Context dialog to configure the System, Origin, and Entry Point.

  1. Explore:
    • Move: Arrow keys, map, or jumps.
    • Disassemble: Press D to start disassembling.
    • Define Data: Press B
    • Comment: Press ;
    • Rename: Press L

Get Started Now{ .md-button .md-button--primary }


Documentation

Tutorial

A typical workflow involves loading a file, identifying code and data regions, labeling them, and iteratively refining the disassembly.

flowchart TD
    S1[1. Load File] --> S2[2. Explore]
    S2 --> S3[3-6. Disassemble, Define Data, Labels, Comments]
    S3 --> S7[7. Save]
    S3 --> S2
    S7 --> Q{Debug?}
    Q -- No --> S10[10. Export to .asm / .html]
    Q -- Yes --> S8[8. Connect to VICE]
    S8 --> S9[9. Live Debugging]
    S9 --> S2
    S10 --> Done[Assemble it, patch it, etc.]

For a detailed step-by-step walkthrough, check out the full tutorial.