{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "beetle_saturn",
      "profile": {
        "core": "mednafen_saturn_libretro",
        "core_classification": "community_fork",
        "core_version": "v1.32.1",
        "cores": [
          "mednafen_saturn",
          "beetle-saturn"
        ],
        "display_name": "Sega - Saturn (Beetle Saturn)",
        "emulator": "Beetle Saturn",
        "files": [
          {
            "name": "sega_101.bin",
            "note": "Saturn BIOS v1.01 (Japan), loaded for the Japan and Asia NTSC areas. The port checks the size only. The sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB).",
            "region": [
              "japan",
              "asia-ntsc"
            ],
            "required": true,
            "sha256": "dcfef4b99605f872b6c3b6d05c045385cdea3d1b702906a0ed930df7bcb7deac",
            "size": 524288,
            "source_ref": "mednafen/ss/ss.c:1846-1847 (region filename), mednafen/ss/ss.c:1868-1874 (open), mednafen/ss/ss.c:1962-1985 (size check, read), mednafen/ss/ss.c:1989 (sha256 for save states)",
            "system": "sega-saturn",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "sha256"
              ]
            }
          },
          {
            "name": "mpr-17933.bin",
            "note": "Saturn BIOS v1.00a (North America and Europe), loaded for every area other than Japan and Asia NTSC, and when no content is loaded. Disc area E maps to EU_PAL and the code has no Oceania area (disc.c:162-165). The port checks the size only. The sha256 is the value upstream Mednafen 1.32.1 holds for this filename in its ss.bios_sanity table (src/ss/ss.cpp, BIOSDB).",
            "region": [
              "north-america",
              "europe",
              "oceania",
              "south-korea",
              "asia-pal",
              "brazil",
              "latin-america"
            ],
            "required": true,
            "sha256": "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f",
            "size": 524288,
            "source_ref": "mednafen/ss/ss.c:1848-1849 (region filename), mednafen/ss/ss.c:1868-1874 (open), mednafen/ss/ss.c:1962-1985 (size check, read), mednafen/ss/ss.c:1989 (sha256 for save states), libretro.c:1069 (default area)",
            "system": "sega-saturn",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "sha256"
              ]
            }
          },
          {
            "min_size": 2097152,
            "name": "mpr-18811-mx.ic1",
            "note": "King of Fighters '95 ROM cart. Selected by the game table for MK-81088 and T-3101G or by the beetle_saturn_cart option. The first 0x200000 bytes are read. A shorter file installs a zeroed cart, an absent file leaves the slot empty.",
            "required": false,
            "source_ref": "mednafen/settings.c:62-63 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:90-91 (game table), libretro.c:493 (option)",
            "system": "sega-saturn",
            "validation": [
              "size"
            ]
          },
          {
            "min_size": 2097152,
            "name": "mpr-19367-mx.ic1",
            "note": "Ultraman: Hikari no Kyojin Densetsu ROM cart. Selected by the game table for T-13308G or by the beetle_saturn_cart option. The first 0x200000 bytes are read. A shorter file installs a zeroed cart, an absent file leaves the slot empty.",
            "required": false,
            "source_ref": "mednafen/settings.c:64-65 (filename), mednafen/ss/cart.c:197-216 (open), mednafen/ss/cart/rom.c:67-68 (read), mednafen/ss/db.c:92 (game table), libretro.c:495 (option)",
            "system": "sega-saturn",
            "validation": [
              "size"
            ]
          },
          {
            "name": "epr-20091.ic8",
            "note": "ST-V BIOS for Japan and Asia NTSC cabinets. Read from stvbios.zip when the bare file is absent.",
            "region": [
              "japan",
              "asia-ntsc"
            ],
            "required": true,
            "size": [
              131072,
              524288
            ],
            "source_ref": "mednafen/ss/ss.c:1839-1840 (region filename), mednafen/ss/ss.c:1872-1989 (open, zip fallback, size check, read)",
            "system": "sega-stv",
            "validation": [
              "size"
            ]
          },
          {
            "name": "epr-17952a.ic8",
            "note": "ST-V BIOS for North America and Central and South America cabinets. Read from stvbios.zip when the bare file is absent.",
            "region": [
              "north-america",
              "brazil",
              "latin-america"
            ],
            "required": true,
            "size": [
              131072,
              524288
            ],
            "source_ref": "mednafen/ss/ss.c:1841-1842 (region filename), mednafen/ss/ss.c:1872-1989 (open, zip fallback, size check, read)",
            "system": "sega-stv",
            "validation": [
              "size"
            ]
          },
          {
            "name": "epr-17954a.ic8",
            "note": "ST-V BIOS for every other cabinet region. Read from stvbios.zip when the bare file is absent.",
            "region": [
              "europe",
              "south-korea",
              "asia-pal"
            ],
            "required": true,
            "size": [
              131072,
              524288
            ],
            "source_ref": "mednafen/ss/ss.c:1843-1844 (region filename), mednafen/ss/ss.c:1872-1989 (open, zip fallback, size check, read)",
            "system": "sega-stv",
            "validation": [
              "size"
            ]
          },
          {
            "category": "bios_zip",
            "contents": [
              {
                "description": "Japan and Asia NTSC",
                "name": "epr-20091.ic8"
              },
              {
                "description": "North America and Central and South America",
                "name": "epr-17952a.ic8"
              },
              {
                "description": "Europe and every other region",
                "name": "epr-17954a.ic8"
              }
            ],
            "description": "ST-V BIOS archive",
            "name": "stvbios.zip",
            "note": "Opened only when the bare ST-V BIOS file for the cabinet region is absent. The member of the same name is matched without regard to case and must be 131072 or 524288 bytes. No hash is checked.",
            "required": false,
            "source_ref": "mednafen/ss/ss.c:1889-1942 (open, member lookup, size check, extract), zip_reader.c:350-357 (case-insensitive lookup)",
            "system": "sega-stv"
          },
          {
            "name": "mpeg_card.bin",
            "note": "Video CD Card program ROM, opened when beetle_saturn_mpeg_card is enabled. The card carries a 512 KiB mask ROM. The core keeps at most 0x80000 bytes, pads a shorter image with zeros and checks nothing else. A loaded image makes the card authenticate. Command 0xE2 then copies the Video CD player program out of it, from the offset its first four bytes give plus 8, so an image of the wrong bytes authenticates but runs no player. Without it the card answers commands but does not authenticate.",
            "required": false,
            "size": 524288,
            "source_ref": "mednafen/settings.c:68-69 (filename), mednafen/ss/cdb.c:1316-1333 (open), mednafen/ss/mpeg.c:67-71 (size), mednafen/ss/mpeg.c:580-607 (read), mednafen/ss/mpeg.c:867-875 (authentication), mednafen/ss/mpeg.c:839-859 (program offset), mednafen/ss/cdb.c:2924-2971 (0xE2 program read)",
            "system": "sega-saturn"
          },
          {
            "min_size": 262144,
            "name": "satar4mp.bin",
            "note": "Action Replay 4M Plus firmware. The first 0x40000 bytes are read as big-endian words and a shorter file leaves the cart slot empty. No hash is checked. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Neither the beetle_saturn_cart option (libretro.c:478-496) nor the game table of mednafen/ss/db.c yields CART_AR4MP, so the case is not reached.",
            "required": false,
            "source_ref": "mednafen/settings.c:66-67 (filename), mednafen/ss/cart.c:218-236 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:181 (0x40000-byte read)",
            "system": "sega-saturn",
            "validation": [
              "size"
            ]
          }
        ],
        "notes": "Libretro port of Mednafen's Saturn emulation module, converted to C and\nreporting v1.32.1 (libretro.c:58). Every firmware file is read from the\nsystem directory: MDFN_MakeFName joins retro_base_directory and the bare\nname for MDFNMKF_FIRMWARE (libretro.c:2347-2348), and the BIOS path is\nbuilt the same way (mednafen/ss/ss.c:1868-1870).\n\nRegion comes from the disc header and the region table of\nmednafen/ss/db.c (libretro.c:1113-1115) and can be forced by the\nbeetle_saturn_region option (libretro.c:454-476, libretro.c:1119-1120).\nWith no content loaded the region defaults to North America\n(libretro.c:1069, libretro.c:1266-1267). The BIOS filename is hard-coded\nper region (mednafen/ss/ss.c:1846-1849): sega_101.bin for Japan and Asia\nNTSC, mpr-17933.bin for every other area. The file must be exactly 524288\nbytes and InitCommon returns false when it is absent, of another size or\nshort on read (mednafen/ss/ss.c:1944-1948, mednafen/ss/ss.c:1962-1985).\nThe sha256 of the loaded image is kept only to refuse a save state made\nunder another BIOS (mednafen/ss/ss.c:1989, mednafen/ss/ss.c:2584-2603).\nss.bios_sanity answers true (mednafen/settings.c:50-51) but nothing in the\nport reads it: the name and hash table that upstream checks under that\nsetting is not carried over.\n\nThe cartridge is chosen by the game table of mednafen/ss/db.c or by the\nbeetle_saturn_cart option (libretro.c:478-496, libretro.c:1123-1124). The\nKOF95 and Ultraman ROM carts are opened from the system directory under\nthe names of mednafen/settings.c:62-65 (mednafen/ss/cart.c:197-216). An\nabsent file leaves the cart slot on the dummy handlers and the load goes\non (mednafen/ss/cart.c:209).\n\nST-V content is a game ZIP or a bare ROM matched against the ST-V game\ntable (libretro.c:1173-1193, libretro.c:1227-1247). The cabinet region of\nthe matched game selects one of three ST-V BIOS images\n(mednafen/ss/ss.c:1830-1844), and the beetle_saturn_region option is not\napplied on that path (libretro.c:1183, libretro.c:1241). The image is read\nas a bare file from the system directory or, when that file is absent, as\nthe member of the same name in stvbios.zip there, matched without regard\nto case (mednafen/ss/ss.c:1876-1950, zip_reader.c:350-357). Either form\nmay be 131072 or 524288 bytes (mednafen/ss/ss.c:1912-1913,\nmednafen/ss/ss.c:1963).\n\nThe Video CD Card is driven through the CD block. With the\nbeetle_saturn_mpeg_card option enabled (libretro.c:544-552, default\ndisabled), CDB_Init opens mpeg_card.bin in the system directory and\nMPEG_Init keeps up to 0x80000 bytes of it (mednafen/settings.c:52-53,\nmednafen/settings.c:68-69, mednafen/ss/cdb.c:1316-1333,\nmednafen/ss/mpeg.c:580-607). A loaded image makes the card authenticate\n(mednafen/ss/mpeg.c:867-875), and the BIOS then reads the Video CD player\nprogram out of it with command 0xE2 (mednafen/ss/cdb.c:2924-2971,\nmednafen/ss/mpeg.c:839-859).\n\nNo setting names a file for the bootable ROM cart: ss.cart.bootrom_path\nhas no value in the port (mednafen/ss/cart.c:242-262,\nmednafen/settings.c:60-71).\n",
        "profiled_date": "2026-10-05",
        "source": "https://github.com/libretro/beetle-saturn-libretro",
        "source_commit": "30f4c12072d265c9e553dcb29386059114945dea",
        "systems": [
          "sega-saturn",
          "sega-stv"
        ],
        "type": "libretro",
        "upstream": "https://mednafen.github.io/",
        "version_basis": {
          "kind": "file",
          "path": "libretro.c",
          "pattern": "#define\\s+MEDNAFEN_CORE_VERSION\\s+\"([^\"]+)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
