Character editor for Linux, written in Rust.
- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Implement full command pattern foundation for reversible operations: - Extend Command trait with redo() method - Add CommandHistory with separate undo/redo stacks (max 100 entries) - Fix all commands to store sufficient state for proper undo/redo: * AddCharacterCommand: stores after_index and inserted_index * DeleteCharacterCommand: stores deleted charset snapshot * ClearCharacterCommand: stores old bytes * SetCharacterBytesCommand: stores old and new bytes - Wire Ctrl+Z and Ctrl+R keyboard shortcuts in main editor - Wire pixel editor changes through command system for undo support - Remove unused description() method and helper methods from public API - Add unit tests for remove_character and insert_character_at |
||
| .cargo | ||
| .zoo | ||
| assets | ||
| docs | ||
| plans | ||
| src | ||
| tests | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
Charmeleon — C64 Character Set Editor
A modern, cross-platform desktop application for creating and editing Commodore 64 character sets. Built with Rust and egui.
Features
- Visual pixel editor — Edit 8×8 character grids with click-and-drag drawing
- Multi-character selection — Hold Ctrl and click to select multiple characters for batch operations
- Range selection — Hold Shift and click another character to select all in between
- Batch delete — Delete multiple selected characters at once with confirmation
- Smart insert — New characters are inserted after the currently selected character, not at the end
- Multiple export formats — Raw binary and KickAssembler assembly
- Import support — Load character sets from binary or assembly files
- Instant preview — See changes immediately as you edit
- Cross-platform — Runs on Windows, macOS, and Linux
System Requirements
- OS: Windows 10+, macOS 10.15+, or Linux (x86_64 / ARM64)
- RAM: 256 MB minimum
Building from Source
git clone <repository-url>
cd charmeleon
cargo build --release
Usage
./target/release/charmeleon
Documentation
A comprehensive user manual is available in docs/charmeleon-manual.pdf.
License
This project is licensed under the MIT License.
C64 Character Set Reference
Each C64 character is defined by 8 bytes (one per row), where each bit represents a single pixel. Charmeleon manages 256 character definitions, providing an intuitive graphical interface for creating custom character sets that can be loaded into C64 RAM at runtime.