This guide covers CHIP-8-specific features and usage of retrodisasm.
- Execution Flow Tracing - Differentiates between code and data through program flow analysis
- Complete Instruction Set - Handles all standard CHIP-8 instructions (35 opcodes)
- retroasm Output - Generates retroasm compatible assembly
Auto-detection from .ch8 or .rom extensions:
retrodisasm -o output.asm program.ch8
retrodisasm -o output.asm game.romExplicit system specification:
retrodisasm -s chip8 -o output.asm program.binCHIP-8 disassembly only supports the retroasm format:
retrodisasm -a retroasm -o output.asm program.ch8Disassemble raw CHIP-8 binary:
retrodisasm -s chip8 -binary -base 0200 -o output.asm program.binCHIP-8 programs typically start at address 0x0200.
Process multiple CHIP-8 ROMs:
retrodisasm -s chip8 -batch "*.ch8"
retrodisasm -s chip8 -batch "*.rom"Omit hex opcode bytes in comments:
retrodisasm -s chip8 -nohexcomments -o output.asm program.ch8Omit file offsets in comments:
retrodisasm -s chip8 -nooffsets -o output.asm program.ch8After disassembly, reassemble with retroasm:
retroasm output.asm -o output.ch8retrodisasm supports all 35 standard CHIP-8 instructions:
- Display:
CLS,DRW - Flow:
JP,CALL,RET,SE,SNE - Arithmetic:
ADD,SUB,SUBN,OR,AND,XOR,SHR,SHL - Memory:
LD(various addressing modes) - Random:
RND - Timers:
LD DT,LD ST - Keyboard:
SKP,SKNP - BCD:
LD B - Register operations:
LD [I],LD F
- CHIP-8 is a virtual machine architecture, not a physical system
- The standard memory layout starts programs at address
0x0200 - retrodisasm traces execution flow to identify code vs data
- Verification (reassembly comparison) is not yet implemented for CHIP-8