Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

WinUAE state import

Copperline can import a supported WinUAE .uss AmigaStateFile and profile its resumed frames. Supply the exact Kickstart used to create it:

copperline --factory kickstart.rom --load-uss scene.uss --noaudio \
  --screenshot-after 0.1 scene.png
copperline-ctl profile scene.uss --rom kickstart.rom \
  --frames 2 --out out/scene

The importer derives the CPU model, chipset and RAM sizes and restores the saved register values. CPU clocks use Copperline’s model defaults; WinUAE speed and JIT preferences are not carried over. If the ROM’s CRC does not match, the error names the Kickstart the state needs, from Copperline’s ROM database. The importer ignores host paths and any ROM image embedded in the USS, so supply your own matching ROM. A 256 KiB ROM may be mirrored in Copperline’s 512 KiB ROM window.

Copperline discards one reconstructed video frame automatically. Scheduled times then follow Copperline’s new emulated timeline, which already includes that frame, not the source emulator’s timestamps. --load-uss cannot be combined with --load-state, --run or --whdload. An explicit configuration can supply matching disk images and host preferences, but the USS hardware configuration takes precedence.

copperline-ctl profile accepts 1-100 frames and writes a native capture with screenshots, DMA slots and instruction/register samples. Add --format bartman --out scene.profile for the fixed PAL binary used by Bartman’s ProfileFile reader. See profiling.

Coverage

This is an approximate interchange path for resident code that owns the chipset, not a way to profile frames of any title. Discarding a warm-up frame cannot reconstruct missing expansion hardware, media state, or an unfinished operation.

USS stateImport behaviour
ASF framing, plain/zlib chunksLength and aggregate limits checked; truncated data and duplicate mandatory chunks rejected.
CPU68000-68060 registers, SR, USP/ISP/MSP, VBR and cache controls; 68EC020 address width retained. Active MMU, FPU chunks and halted CPUs rejected. Cache contents/prefetch are reconstructed.
CHIPCompact and full register layouts; custom latches, Copper lists, bitplane pointers, blitter configuration, interrupt/DMA controls and disk pointer/sync. Active blits and disk DMA rejected.
CHPXValidated boot-ROM overlay flags; other emulator-specific machine preferences are not restored.
AGAC, SPR0-7, AUD0-324-bit palette, sprite pointers/position/data/arming, audio pointers/lengths/period/volume and current sample state. Shift pipelines are approximate.
CIAA/BPorts, timer counters/latches, control registers, interrupt state and TOD/alarm/latch; supports older 30-byte and extended chunks.
CRAM, BRAMChip RAM and slow RAM.
FRAM, ZRAM, EXPAFixed Zorro II/III RAM mappings from the saved expansion bases.
A3K1, A3K2Motherboard RAM below and CPU-slot RAM above $08000000, within Copperline’s supported limits.
ROMOne 256/512 KiB Kickstart, verified by size/CRC. Extension/board ROM states rejected.
DSK/DSD, input, RTCDrive position/backing media, keyboard/input and real-time-clock internals are not restored; omitted chunks are reported.
CPUX/CPUT, CYCS, CHPD/CHSL, BPLX, BLIT/BLTXEmulator-specific pipelines/event timing are reconstructed rather than replayed. Programmable beam timing is not restored.
FSYS/FSYC/FSYP, BORO, PRAM/ZCRM, DMAC, CD32/CDTV, P96Unsupported mounted filesystems, board/RTG RAM, storage and CD hardware states are rejected.

A short resumed capture may succeed even when the next disk access would fail. Configure matching disks for continued use, and check the resumed scene before relying on its profile. The importer neither follows saved host filesystem paths nor reconstructs filesystem handles.

Compatibility assessment

The initial assessment used the 58 USS fixtures distributed with Bartman’s extension. With matching local ROMs for 53 fixtures, 45 produced two-frame native captures; eight were rejected for active disk DMA (three), active blits (two), unsupported RAM ranges (two), or board ROM state (one). Five required a different local ROM and were not run. These are capture-completion counts, not 45 verified compatible titles.

Visual checks included the OCS desertdream-dots scene, ECS Workbench 2.0, and AGA roots a1200 linetunnel. The Gods fixture resumed to a mostly blank frame, so it is not validated as compatible. No comparison emulator was run, and this assessment does not claim pixel or cycle equivalence to WinUAE. The first useful target is frame analysis of self-contained demos; covering arbitrary titles also needs drive state, expansion devices and in-flight hardware operations.

The wire format and field ordering follow WinUAE’s savestate implementation and its CPU/custom/CIA/audio chunk writers. See import internals.