emulator: FreeIntv type: libretro core_classification: pure_libretro source: "https://github.com/libretro/FreeIntv" profiled_date: "2026-03-23" source_commit: "ef3e0fe322bec62a7f916c0bb0834c08c348d0b4" core_version: "2018.1.5" display_name: "Mattel - Intellivision (FreeIntv)" cores: - freeintv systems: - intellivision notes: | Written for libretro by David Richardson. Intellivoice SP0256 emulation contributed by Joe Zbiciak (jzIntv), mask ROM embedded in source (src/ivoice.c:337-510, 4097-byte static array). No external ivoice ROM. BIOS loading in retro_init() (src/libretro.c:1175-1183). Paths joined directly to system directory, no subdirectory. loadExec() reads exec.bin as big-endian 16-bit words into 0x1000-0x1FFF. loadGrom() reads grom.bin as raw bytes into 0x3000-0x37FF. Both files required for operation. Without them, the OSD shows "PUT GROM/EXEC IN SYSTEM DIRECTORY" and games do not run. No hash or size validation on either file. No ECS support. No ecs.bin loading code in the source. Per-game controller overlays are read from freeintv_overlays/.png (or .jpg) in the system directory, only when the multi-screen option is on (src/libretro.c:278-280, 294). Without one the core draws the keypad image embedded in the binary (src/libretro.c:321-325). data_directories: - ref: freeintv-overlays destination: freeintv_overlays required: false files: - name: "exec.bin" system: intellivision required: true size: 8192 note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF." source_ref: "src/intv.c:51-96, src/libretro.c:1178" - name: "grom.bin" system: intellivision required: true size: 2048 note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF." source_ref: "src/intv.c:98-144, src/libretro.c:1182"