Gearcoleco
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
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.
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator gearcolecoOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator gearcolecoOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator gearcolecoSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator gearcolecoInstall Termux, a terminal app. Run pkg install python and termux-setup-storage once. Then paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator gearcolecoOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator gearcolecoTechnical 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/) walks the
frontend system directory and then its gearcoleco subdirectory
(platforms/), trying every accepted name in each. A file whose size
differs from the role's size is skipped with a warning (platforms/).
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/). CRC32 is computed after the search and only
logged when it differs from the table (platforms/, 924-935).
The machine is chosen per load (platforms/): .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/) takes a cartridge, two disks and two data packs.
ColecoVision: load_colecovision_firmware() (platforms/) needs OS-7
and retro_load_game() returns false without it (platforms/).
It runs again on retro_reset() (platforms/). 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/) 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.
Required
Section titled “Required”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.colandcoleco.romandcolecovision.rom: Lakka, RetroArch, RetroPie.colecovision.rom: Batocera, EmuDeck.Coleco_Bios.bin: BizHawk.Machines/andCOL - ColecoVision with Opcode Memory Extension/ coleco.rom Machines/andCOL - ColecoVision/ coleco.rom coleco/boot.rom: Recalbox.bios/BIOS.colandbios/andMachines/ COL - ColecoVision with Opcode Memory Extension/ coleco.rom bios/andMachines/ COL - ColecoVision/ coleco.rom bios/colecovision.rom: AmberELEC.bios/BIOS.colandbios/coleco.romandbios/colecovision.rom: RetroDECK.bios/andMachines/ COL - ColecoVision with Opcode Memory Extension/ coleco.rom bios/: EmuELEC.Machines/ COL - ColecoVision/ coleco.rom coleco.romandcolecovision.romandopenMSX/: RetroBat.share/ systemroms/ coleco.rom colecovision/colecovision.rom: RomM
Hashes, validation and source
- CRC32:
3aa93ef3 - Validation: size, crc32
- Source:
platforms/,libretro/ libretro.cpp:779-840 platforms/,libretro/ libretro.cpp:858-885 platforms/,libretro/ libretro.cpp:2453-2457 platforms/,libretro/ libretro.cpp:2258-2259 src/Adam.cpp:28-31,src/Adam.h:52,src/Memory.cpp:310-319,src/Memory.cpp:246-249
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.
- Size: 8.0 KB, CRC32 05a37a34
- Collection copy:
bios/Coleco/Adam/eos.rom
Hashes, validation and source
- CRC32:
05a37a34 - Validation: size, crc32
- Source:
platforms/,libretro/ libretro.cpp:887-948 platforms/,libretro/ libretro.cpp:2426-2427 platforms/,libretro/ libretro.cpp:2483-2487 platforms/,libretro/ libretro.cpp:2500-2501 platforms/,libretro/ libretro.cpp:2584-2588 src/Adam.cpp:32-35,src/Adam.h:53,src/Adam.cpp:137-146,src/Adam.cpp:166-188,src/GearcolecoCore.cpp:414-419,src/Adam.cpp:519-522
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.
- Size: 32.0 KB, CRC32 58d86a2a
- Collection copy:
bios/Other/colem/WRITER.ROM
Hashes, validation and source
- CRC32:
58d86a2a - Validation: size, crc32
- Source:
platforms/,libretro/ libretro.cpp:887-948 platforms/,libretro/ libretro.cpp:2426-2427 platforms/,libretro/ libretro.cpp:2483-2487 platforms/,libretro/ libretro.cpp:2500-2501 platforms/,libretro/ libretro.cpp:2584-2588 src/Adam.cpp:36-39,src/Adam.h:54,src/Adam.cpp:137-146,src/Adam.cpp:166-188,src/GearcolecoCore.cpp:414-419,src/Adam.cpp:513-522
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start