Regenerator 2000

2 min read Original article ↗

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, all within a fast, keyboard-centric terminal interface.


At a Glance

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

The Code View: The heart of the operation. Navigate 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.
  • ⚡ 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 variable for readability.
  • 🐛 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 source code or VICE labels for debugging.

Quick Start

  1. Install:

    cargo install regenerator2000
    
  2. Run:

    regenerator2000 my_game.prg
    
  3. Explore:

    • Move: Arrow keys, map, or jumps.
    • Define Code: Press C
    • 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. Define Code, Data, Labels, Comments]
    S3 --> S7[7. Save Project]
    S3 --> S2
    S7 --> Q{Debug?}
    Q -- No --> S10[10. Export Project]
    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.