Asset Types
Understanding sprites, BOBs, bitmaps, fonts, and animations.
Sprites
Hardware sprites are the Amiga's built-in moving objects. They're rendered by the display hardware without consuming CPU or blitter time, making them ideal for player characters, cursors, and bullets.
Sprite Basics
- Width: Fixed at 16 pixels
- Height: 21 pixels (standard Amiga sprite)
- Colors: 3 colors + transparent (2 bitplanes)
- Hardware limit: 8 sprites on screen (numbered 0-7)
Sprites are stored as interleaved bitplane data, with control words at the start and end. Miggy Draw handles this format automatically when you export.
// Generated sprite structure
UWORD sprite_player[] = {
0x6060, 0x0000, // Position/control
0x0180, 0x0180, // Pixel data (interleaved bitplanes)
0x03C0, 0x07E0,
// ... more rows ...
0x0000, 0x0000 // End marker
};
Sprite Colors
Amiga sprites use color registers 16-31, shared between sprite pairs:
| Sprite Pair | Sprites | Color Registers |
|---|---|---|
| 0 | 0, 1 | 17, 18, 19 |
| 1 | 2, 3 | 21, 22, 23 |
| 2 | 4, 5 | 25, 26, 27 |
| 3 | 6, 7 | 29, 30, 31 |
Sprites in the same pair share colors. Use this to your advantage by grouping related sprites (e.g., player and player's bullets).
BOBs (Blitter Objects)
BOBs are software-rendered graphics using the Amiga's blitter chip. Unlike hardware sprites, BOBs have no size limits and support up to 5 bitplanes (32 colors).
- Width: Any size (must be multiple of 16 for optimal blitting)
- Height: Any size
- Colors: 2-32 colors (1-5 bitplanes)
- Transparency: Supported via shadow mask
Shadow Masks
BOBs use a separate 1-bitplane mask to define transparent areas. In Miggy Draw, use the Mask Tool (7) to paint the mask directly:
- White pixels: Opaque (BOB visible)
- Black pixels: Transparent (background shows through)
// Generated BOB with mask
UWORD __chip bob_enemy_plane0[] = { /* bitplane 0 */ };
UWORD __chip bob_enemy_plane1[] = { /* bitplane 1 */ };
UWORD __chip bob_enemy_mask[] = { /* shadow mask */ };
The __chip qualifier ensures the data is placed in chip RAM, which is required for blitter operations.
Bitmaps
Bitmaps are general-purpose graphics for backgrounds, tiles, UI elements, or anything that doesn't need to move. They support 1-5 bitplanes.
- Width: Any size
- Height: Any size
- Colors: 2-32 colors (1-5 bitplanes)
- Use cases: Backgrounds, tiles, static UI
Bitmaps are exported as separate arrays per bitplane, suitable for direct use with the Amiga's display system.
Fonts
Miggy Draw creates bitmap fonts compatible with the Amiga's text rendering. Each font can contain multiple sizes with configurable character ranges.
- Glyph range: ASCII 0x20-0x7E (space through tilde) by default
- Spacing: Monospaced or proportional
- Sizes: Multiple sizes per font (e.g., 8px, 16px, 24px)
- Baseline: Configurable vertical offset
You can import TrueType fonts and convert them to bitmap, or draw each glyph by hand in the font editor.
Animations
Animations combine multiple images into frame sequences with configurable timing.
- Frames: Reference existing sprites, BOBs, or bitmaps
- Timing: Speed control (1-10) and per-frame duration
- Playback: Looping or one-shot
// Generated animation structure
typedef struct {
UWORD frameCount;
UWORD *frameDurations;
void **frames;
BOOL looping;
} AnimationAsset;
Continue to Editing to learn about drawing tools and image operations.