For modern developers working on classic 8-bit platforms like the Commodore 64, there are plenty of modern tools to make the process easier. IceBro Lite is a hobby project of mine inspired by modern debugging tools.
IceBro Lite is a high-fidelity, GUI-based source-level debugger that runs on modern operating systems (Windows 11, Linux, and macOS) while interfacing with the industry-standard VICE emulator.

This is a toungue-in-cheek pitch sheet for the debugger, for programmers that might not be familiar with retro game dev, or hardcore retro devs considering a facsimile of a modern development suite debugger.
Core Features of IceBro Lite
IceBro Lite connects to the VICE emulator via its built-in binary monitor which allows plenty of inspection and testing abilities. It is architected around flexibility and visual inspection, offering features that mirror professional IDEs.
IceBro Lite uses the debug format generated by Kick Assembler (https://www.theweb.dk/KickAssembler/Main.html#frontpage) which I also adopted for my own assembler project (https://github.com/sakrac/x65)
Flexible UI and Layout
One of the most immediate features is its fully customizable interface, thanks to utililizing dear ImGui by Omar Cornut. Similar to the docking systems found in Visual Studio, IceBro Lite allows developers to organize, collapse, and detach panes to fit their specific workflow. This layout system ensures that the information most relevant to the current task—be it memory state or source code—is always front and center.
Machine Inspection Tools
Code View
Offers full disassembly and source-level debugging capabilities. It includes features for tracking the Program Counter (PC), setting breakpoints, and editing disassembly on the fly.

Graphics View
A specialized inspector for C64 graphics, supporting various modes including text, bitmap, and sprite layouts. It provides developers with the ability to visualize how memory data translates into pixels, effectively handling the complexities of the VIC-II chip.

Watch View
Allows for real-time monitoring of natural expressions. Developers can define expressions (e.g., {$101+s}-2) to monitor register contents, stack pointers, and specific memory addresses dynamically.

Symbol Navigation
With a robust search feature, developers can manage symbols (constants and addresses), making it easy to navigate large projects by dragging symbols directly into the Code or Memory views. Sections of symbols can be toggled on and off to managed overlapping segments while debugging

Breakpoint Management
IceBro Lite supports advanced debugging techniques beyond simple execution. VICE has a wider system of breakpoints than most modern developer debuggers. Its Breakpoint View tracks checkpoints (break, watch, and trace), while the Console View integrates the VICE text monitor with custom IceBro commands, providing an “Action Replay-like” experience for developers needing granular control over emulation state.

Comparison with Modern Platform Debuggers
Comparing IceBro Lite to standard debuggers for modern platforms (such as GDB/LLDB on Linux/macOS or the Visual Studio Debugger on Windows 11) highlights both its strengths and its unique role as a cross-platform emulation tool.
Parity in UX and Workflow
- Layout and Workflow: IceBro Lite succeeds in emulating the “modern IDE” experience. Like Visual Studio or VS Code, it relies on dockable windows, hover-tooltips for variable/register values, and keyboard-centric navigation (F5 to Run, F10/F11 for stepping).
- Expression Evaluation: Much like the expression evaluators in GDB or the “Watch” window in Visual Studio, IceBro Lite’s Watch View allows for logical and bitwise operations, significantly lowering the cognitive load compared to manual calculation in traditional 8-bit monitors.
Fundamental Differences
While the experience is modern, the underlying technology is distinct from native platform debuggers:
| Feature | IceBro Lite (C64 Cross-Development) | Modern Native Debuggers (GDB, VS) |
|---|---|---|
| Execution | Emulated (VICE dependency) | Native (OS/Hardware execution) |
| Instruction Set | 6502 Assembly | x86-64, ARM, etc. |
| State Inspection | Visualized RAM, Screen Visualization, Trace captures | Process memory, Threads, Call stacks |
| Host Platform | Windows/Linux/macOS | Windows/Linux/macOS |
Contrasting IceBro Lite against modern tools
Modern debuggers like GDB or LLDB are designed to abstract the OS, managing process memory, thread pools, and complex high-level object models. In contrast, IceBro Lite is designed for a bare-metal environment.
It does not compete with GDB or Visual Studio; rather, it brings the power of those modern debugging concepts to an environment that historically lacked them. By utilizing the binary monitor protocol in VICE 3.5+, IceBro Lite manages to make 8-bit assembly debugging feel as intuitive and fluid as debugging a C++ or Rust application on Windows 11 or Linux.
For developers who value the modern experience—dockable windows, symbol search, and live expression monitoring—but are tasked with writing code for a 40-year-old architecture, IceBro Lite provides a highly optimized, cross-platform solution that respects modern developer habits while staying true to the constraints of the C64.

Background
As the name of the debugger implies, this is not the first iteration of this tool. To rewind to the beginning, this started from a need to make a test suite for a text parsing tool libarary. The test included a variety of parsers like XML, JSon, etc. and a simple 6502 assembler.
But how to test the 6502 assembler? I could write some code and run it on a real Commodore 64 but then I’d see the result of the program, not the output of the assembler. So a tool created in Windows MFC was born, Step6502: https://github.com/sakrac/step6502

The code works, but complex UI in MFC is a struggle to maintain. It would frequently get into a bad state. This version had a built-in 6502 emulator and could run code from other hardware such as Apple ][.


IceBro (https://github.com/sakrac/icebro) added significant stability by switching to dear ImGui and in addition to the built-in 6502 emulator could connect to the VICE text monitor. IceBro also added recording each instruction event so you can run code backwards and hit breakpoints in this mode.

IceBro Lite was born from the introduction of the binary monitor interface introduced in VICE 3.5. After some friendly pressure I agreed to give it a try and it worked out well. To streamline the tool the built-in 6502 emulator was discontinued.
Due to me working with Toaplan properties (japanese arcade game developers 1984-1994) the icon for IceBro Lite was changed. Toaplan developed the arcade game Snow Bros which was the inspiration the prior IceBro icon.

Summary
IceBro Lite is a fun project that has perhaps grown a little too useful. I’ve just wrapped up a backend change to Sokol, updated ImGui and improved the flow in Linux.
I’ll keep tinkering with the project, primarily to distract me from writing Commodore 64 games when needed! And if anyone finds any use in it that is all for the better.
I personally use it for all my Commodore 64 games, most of which you can learn about here: https://spacemoguls.com/games/, or download some of them from https://spacemoguls.itch.io/