{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "jollycv",
      "profile": {
        "core_classification": "official_port",
        "core_version": "2.1.0",
        "cores": [
          "jollycv"
        ],
        "display_name": "ColecoVision/CreatiVision/My Vision (JollyCV)",
        "emulator": "JollyCV",
        "files": [
          {
            "description": "ColecoVision BIOS",
            "md5": "2c66f5911e5b42b8ebe113403548eee7",
            "name": "coleco.rom",
            "note": "Mapped at 0x0000-0x1FFF, replaced by the lower 8K of SGM RAM when the Super Game Module enables it. The MD5 is the value the JG bioslist declares, and the core compares the size only.",
            "required": true,
            "size": 8192,
            "source_ref": "source libretro/libretro.c:697-703, source src/jollycv.c:406-432, source src/jcv_coleco.c:402-410, source jg.c:151-153",
            "system": "colecovision",
            "validation": [
              "size"
            ]
          },
          {
            "description": "VTech CreatiVision BIOS ROM",
            "md5": "3b1ef759d8e3fb4071582efd33dd05f9",
            "name": "bioscv.rom",
            "note": "Mapped at 0xF800-0xFFFF. The MD5 is the value the JG bioslist declares, and the core compares the size only.",
            "required": true,
            "size": 2048,
            "source_ref": "source libretro/libretro.c:707-713, source src/jollycv.c:406-432, source src/jcv_crvision.c:316-324, upstream jg.c:154-155",
            "system": "crvision",
            "validation": [
              "size"
            ]
          }
        ],
        "notes": "JollyCV emulates the ColecoVision (with Super Game Module), the VTech\nCreatiVision and the Nichibutsu My Vision. The libretro port and the\nJolly Good build share the same src/ tree, and only the front end differs.\n\nThe libretro port picks the system from the file name\n(libretro/libretro.c:670-679): \".myv\" is My Vision, \".rom\" and \".bin\"\nare looked up by MD5 in the CreatiVision table (src/jcv_db.c:109-176,\nreached through src/jollycv.c:118-120) and fall back to ColecoVision,\n\".col\" is ColecoVision. A CreatiVision image whose MD5 is not in the\ntable runs as ColecoVision. Version 2.1.0 moved that table from\nlibretro/gamedb.h into src/jcv_db.c so both builds share it.\n\nBIOS files are read from the front end's system directory, no\nsubdirectory, as \"<system_dir>/coleco.rom\" or \"<system_dir>/bioscv.rom\"\n(libretro/libretro.c:696-716). jcv_bios_load_file (src/jollycv.c:406-432)\nopens the file, reads it whole and hands the buffer to\njcv_coleco_bios_load or jcv_crvision_bios_load, which keep it only when\nthe size is exactly SIZE_CVBIOS (8192) or SIZE_CRVBIOS (2048). The return\nvalue of that size check is dropped at src/jollycv.c:427, so a file of the\nwrong size passes the loader while the BIOS pointer stays NULL, and the first\nBIOS read (src/jcv_coleco.c:281-282, src/jcv_crvision.c:443-444) then\ndereferences it. A missing file fails retro_load_game. My Vision loads no\nBIOS (libretro/libretro.c:717-719).\n\nThe Jolly Good build reads the same two names from the front end's BIOS\npath (jg.c:463-481) and declares them through jg_get_bioslist with an\nMD5 each (jg.c:151-156). The core never compares those MD5. The reference\nfront end hashes the file against them for a debug log only\n(jgrf src/jgrf.c:441-458). The md5: fields below carry these values.\n\nColecoVision cartridges start with 0xAA55 to show the BIOS title screen or\n0x55AA to jump straight to the game vector (src/jcv_coleco.c:421-426).\nThe MD5 database of ColecoVision games in src/jcv_db.c selects cartridge\nmappers and controller flags.\n",
        "platform_details": {
          "colecovision": {
            "bios_filename": "coleco.rom",
            "bios_size": 8192,
            "memory_map": "0x0000-0x1FFF",
            "source_ref": "src/jcv_coleco.c:268-283"
          },
          "creativision": {
            "bios_filename": "bioscv.rom",
            "bios_size": 2048,
            "memory_map": "0xF800-0xFFFF",
            "source_ref": "src/jcv_crvision.c:316-318, 443-445"
          },
          "myvision": {
            "bios_required": false,
            "note": "No BIOS is loaded for My Vision.",
            "source_ref": "libretro/libretro.c:717-719"
          }
        },
        "profiled_date": "2026-09-17",
        "source": "https://github.com/libretro/jollycv",
        "source_commit": "2790d59c7194d29e83f8603ffd7e9da17f11575e",
        "systems": [
          "colecovision",
          "crvision",
          "myvision"
        ],
        "type": "libretro",
        "upstream": "https://gitlab.com/jgemu/jollycv",
        "upstream_commit": "3caacb22143543d5c7de4f3208def645a2ec0ab5",
        "version_basis": {
          "kind": "file",
          "path": "version.h",
          "pattern": "#define\\s+JG_VERSION\\s+\"([^\"]+)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
