Skip to content

Gearcoleco emulates ColecoVision and Coleco Adam. It reads 3 files, 3 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.

About this profile
Detail Value
Type libretro
Classification Official port
Source https://github.com/drhelius/Gearcoleco
Version 1.7.4-35-gbe1a371, 35 commits after tag 1.7.4
Revision drhelius/Gearcoleco@be1a3716d2db
Profiled 2026-09-17
Profile YAML, JSON
Cores gearcoleco
Systems ColecoVision, Coleco Adam
Install this emulator's files

The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator gearcoleco
Technical notes

ColecoVision and Coleco ADAM emulator by Ignacio Sanchez (drhelius). The libretro port lives in the same repository. Three firmware roles are declared in kAdamFirmwareMetadata (src/Adam.cpp:26-40): OS-7, EOS and SmartWriter, each with a size, a CRC32 and its accepted file names.

find_firmware() (platforms/libretro/libretro.cpp:779-840) walks the frontend system directory and then its gearcoleco subdirectory (platforms/libretro/libretro.cpp:793), trying every accepted name in each. A file whose size differs from the role's size is skipped with a warning (platforms/libretro/libretro.cpp:812-817). Every candidate that passes is compared to the first one found: two valid-sized images with different bytes are an ambiguous role and the load fails (platforms/libretro/libretro.cpp:826-833). CRC32 is computed after the search and only logged when it differs from the table (platforms/libretro/libretro.cpp:873-876, 924-935).

The machine is chosen per load (platforms/libretro/libretro.cpp:2441-2443): .ddp, .dsk, a ZIP holding an ADAM image, an .m3u playlist, no content at all, or a cartridge with the core option gearcoleco_cartridge_hardware set to ADAM start the ADAM, and any other cartridge starts the ColecoVision. The "adam" subsystem (platforms/libretro/libretro.cpp:535-543) takes a cartridge, two disks and two data packs.

ColecoVision: load_colecovision_firmware() (platforms/libretro/libretro.cpp:858-885) needs OS-7 and retro_load_game() returns false without it (platforms/libretro/libretro.cpp:2453-2457). It runs again on retro_reset() (platforms/libretro/libretro.cpp:2258-2259). The image goes through Memory::LoadBiosFromBuffer() (src/Memory.cpp:310-319) and byte 0x69 is patched on reset, 0x32 when the cartridge is PAL and 0x3C otherwise (src/Memory.cpp:246-249). The ADAM always gets 0x3C (src/Memory.cpp:221).

ADAM: load_adam_firmware() (platforms/libretro/libretro.cpp:887-948) needs all three roles and every ADAM entry point returns false when one is missing (platforms/libretro/libretro.cpp: 2427-2428, 2484-2488, 2501-2502, 2585-2589). Adam::LoadFirmware() (src/Adam.cpp:166-188) copies the three images, IsFirmwareReady() (src/Adam.cpp:137-146) gates StartAdam() (src/GearcolecoCore.cpp:414-419). The MIOC maps SmartWriter over the lower 32 KiB with EOS replacing its last 8 KiB bank when the control latch selects it, and OS-7 over the first 8 KiB in cartridge mode (src/Adam.cpp:513-537).

Save RAM, save states and IPS patches are read next to the content or in the frontend save directory. They are state the core writes, not files a user obtains.

3 files: 3 required, 0 optional.

In this collection: 3 in repo and 0 missing.

colecovision.rom required for ColecoVision in repo

ColecoVision OS-7 BIOS

  • System: ColecoVision
  • Aliases: coleco.rom, os7.u2
  • Loaded for both machines. Any 8192-byte image is accepted, and a CRC32 other than 3aa93ef3 logs "Unknown OS-7 revision" and runs. PAL timing comes from the byte patched at 0x69, not from a PAL dump.
  • Size: 8.0 KB, CRC32 3aa93ef3
  • Collection copy: bios/Coleco/ColecoVision/BIOS.col
  • Platforms: BIOS.col and coleco.rom and colecovision.rom: Lakka, RetroArch, RetroPie. colecovision.rom: Batocera, EmuDeck. Coleco_Bios.bin: BizHawk. Machines/COL - ColecoVision with Opcode Memory Extension/coleco.rom and Machines/COL - ColecoVision/coleco.rom and coleco/boot.rom: Recalbox. bios/BIOS.col and bios/Machines/COL - ColecoVision with Opcode Memory Extension/coleco.rom and bios/Machines/COL - ColecoVision/coleco.rom and bios/colecovision.rom: AmberELEC. bios/BIOS.col and bios/coleco.rom and bios/colecovision.rom: RetroDECK. bios/Machines/COL - ColecoVision with Opcode Memory Extension/coleco.rom and bios/Machines/COL - ColecoVision/coleco.rom: EmuELEC. coleco.rom and colecovision.rom and openMSX/share/systemroms/coleco.rom: RetroBat. colecovision/colecovision.rom: RomM
Hashes, validation and source

eos.rom required for Coleco Adam in repo

ADAM EOS (Elementary Operating System) ROM

  • System: Coleco Adam
  • The 8 KiB EOS bank, the first half of the 16 KiB u22 chip. A CRC32 other than 05a37a34 logs "Unknown EOS revision" and runs. Only the ADAM needs it: ColecoVision cartridges load without it.

writer.rom required for Coleco Adam in repo

ADAM SmartWriter word processor ROM

  • System: Coleco Adam
  • Aliases: wp.rom, wp_r80.rom
  • A CRC32 other than 58d86a2a logs "Unknown SmartWriter revision" and runs. Only the ADAM needs it: ColecoVision cartridges load without it.
.