ColEm - RetroBIOS¶
Technical notes
ColecoVision and Coleco Adam emulator by Marat Fayzullin, published as versioned archives on a personal site rather than a repository. The 5.6 source archive carries the portable core (ColEm/, EMULib/, Z80/) and the Unix port; Windows and Android builds are binary-only.
Three system ROMs are read by StartColeco (Coleco.c:266-300) before the hardware reset and before the cartridge. Lookup runs in the directory named by -home, which main() defaults to the directory holding the executable (ColEm.c:66-72), so the ROMs sit next to the binary the way the official archives ship them. Each name is passed to fopen as written, in uppercase.
COLECO.ROM is fatal. A failed open or a file yielding fewer than 8192 bytes sets the error string, and StartColeco returns before ResetColeco and RunZ80 (Coleco.c:306). It is loaded in both modes and maps at 0000h on the ColecoVision and under the Super Game Module (Coleco.c:651). Nothing in the tree substitutes for it.
WRITER.ROM and EOS.ROM gate Adam emulation. Each has to yield its full read to advance the AdamROMs counter, EOS.ROM is attempted only once WRITER.ROM succeeded, and Coleco.c:300 collapses the counter unless both landed. ResetColeco then clears CV_ADAM when the counter is zero (Coleco.c:749), so -adam falls back to ColecoVision, and inserting the first disk or tape into drive A: is refused (Coleco.c:1454, 1460, 1496, 1502). SmartWriter maps at 0000h on boot and EOS at 4000h once port 20h enables it (Coleco.c:628-646).
No hash or magic number is checked on the three ROMs; the read length is the only gate. CRC32 is computed for cartridges alone, feeding the GuessROM hardware heuristics (Coleco.c:482-486).
Cartridges, .DSK/.FDI disks and .DDP tapes are user content. Beside a
loaded cartridge, FindState (Coleco.c:1529-1548) probes
3 files | 3 required, 0 optional | 3 in repo, 0 missing
COLECO.ROM required in repo
OS7 ColecoVision BIOS, read into the 8kB ROM_OS7 window
- System: coleco-colecovision
- Size: min 8.0 KB
- Validation: size
- Source:
ColEm/Coleco.c:266-273,ColEm/Coleco.c:306,ColEm/Coleco.h:78-79
WRITER.ROM required in repo
Adam SmartWriter ROM, read into the 32kB ROM_WRITER window
- System: coleco-adam
- Size: min 32.0 KB
- Validation: size
- Source:
ColEm/Coleco.c:275-285,ColEm/Coleco.c:300,ColEm/Coleco.c:749,ColEm/Coleco.h:75
EOS.ROM required in repo
Adam EOS, read into the 8kB ROM_EOS window
- System: coleco-adam
- Size: min 8.0 KB
- Validation: size
- Source:
ColEm/Coleco.c:287-297,ColEm/Coleco.c:300,ColEm/Coleco.c:749,ColEm/Coleco.h:83
Generated on 2026-08-23T16:12:06Z