{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "mgba",
      "profile": {
        "core_classification": "official_port",
        "core_version": "0.11.0",
        "cores": [
          "mgba",
          "mgba_fork"
        ],
        "display_name": "Nintendo - Game Boy Advance (mGBA)",
        "emulator": "mGBA",
        "files": [
          {
            "hle_fallback": true,
            "name": "gba_bios.bin",
            "note": "GBA BIOS. HLE replacement built in. Real BIOS adds boot logo and full SWI accuracy.",
            "required": false,
            "size": 16384,
            "source_ref": "source src/platform/libretro/libretro.c:2068",
            "system": "nintendo-gba",
            "validation": [
              "size"
            ]
          },
          {
            "crc32": [
              "59c8598e",
              "c2f5cc97",
              "e6920754",
              "ec8a83b9",
              "53d0dd63",
              "66cc6d94",
              "908ba8de",
              "783e69c2"
            ],
            "name": "gb_bios.bin",
            "note": "DMG/MGB boot ROM. Scrolling Nintendo logo. Skipped if absent.",
            "required": false,
            "size": 256,
            "source_ref": "source src/platform/libretro/libretro.c:2104, source src/platform/libretro/libretro.c:2111-2116, source src/gb/gb.c:50-63, source src/gb/gb.c:605-628, source src/gb/gb.c:661-665",
            "system": "nintendo-gb",
            "validation": [
              "crc32"
            ]
          },
          {
            "crc32": [
              "41884e46",
              "e8ef5318",
              "e95dc95d",
              "ffd6b0f1",
              "570337ea",
              "69236128"
            ],
            "name": "gbc_bios.bin",
            "note": "CGB boot ROM. Used for CGB, AGB (GBA in GB mode), and SCGB models.",
            "required": false,
            "size": 2304,
            "source_ref": "source src/platform/libretro/libretro.c:2097, source src/platform/libretro/libretro.c:2111-2116, source src/gb/gb.c:50-63, source src/gb/gb.c:605-628, source src/gb/gb.c:661-665",
            "system": "nintendo-gbc",
            "validation": [
              "crc32"
            ]
          },
          {
            "crc32": [
              "ec8a83b9",
              "53d0dd63",
              "59c8598e",
              "c2f5cc97",
              "e6920754",
              "66cc6d94",
              "908ba8de",
              "783e69c2"
            ],
            "name": "sgb_bios.bin",
            "note": "SGB boot ROM. SGB2 maps here in standalone (src/gb/core.c:655) but falls to gb_bios.bin in libretro.",
            "required": false,
            "size": 256,
            "source_ref": "source src/platform/libretro/libretro.c:2100, source src/platform/libretro/libretro.c:2111-2116, source src/gb/gb.c:50-63, source src/gb/gb.c:605-628, source src/gb/gb.c:661-665",
            "system": "nintendo-sgb",
            "validation": [
              "crc32"
            ]
          }
        ],
        "logo": "https://raw.githubusercontent.com/mgba-emu/mgba/master/res/mgba-256.png",
        "notes": "mGBA is a Game Boy Advance emulator with Game Boy, Game Boy Color, and\nSuper Game Boy support.\n\nAll BIOS files are optional. mGBA ships a built-in HLE BIOS for GBA\n(src/gba/hle-bios.c) that covers most software. The real BIOS improves\naccuracy (startup logo, some edge-case SWI behavior). There is no HLE\nBIOS for GB/GBC/SGB -- those rely on GBSkipBIOS() if no file is found.\n\nBIOS loading is controlled by two core options:\n  mgba_use_bios (default ON)  - whether to look for BIOS files at all\n  mgba_skip_bios (default OFF) - skip the boot animation even if loaded\n\nThe libretro port resolves BIOS filenames in retro_load_game()\n(src/platform/libretro/libretro.c:2060-2118). It picks the filename\nbased on detected model:\n  GBA           -> gba_bios.bin\n  GB (DMG/MGB)  -> gb_bios.bin\n  GBC (CGB/AGB) -> gbc_bios.bin\n  SGB           -> sgb_bios.bin\n  SGB2          -> gb_bios.bin (falls to default, missing case)\n\nThe standalone core (src/gb/core.c:649-696) correctly maps SGB2 to\nsgb_bios.bin (marked TODO for a dedicated file). The libretro port\nomits GB_MODEL_SGB2 from its switch, so SGB2 falls to default.\n\nGBIsBIOS() in src/gb/gb.c validates BIOS files by CRC32 checksum.\nAccepted checksums cover DMG, DMG0, MGB, SGB, SGB2, CGB, CGB0, CGBE,\nAGB, and AGB0 revisions.\n",
        "platform_details": {
          "gb": {
            "bios_size": 256,
            "hle_bios": false,
            "note": "GBIsBIOS() validates by CRC32. Accepted DMG-family checksums:\n  DMG0 = 0xC2F5CC97, DMG = 0x59C8598E, MGB = 0xE6920754\nFiles not matching any known checksum are rejected.\n",
            "source_ref": "src/gb/gb.c:570-605"
          },
          "gba": {
            "bios_size": 16384,
            "hle_bios": true,
            "note": "GBALoadBIOS() validates size (must be exactly 0x4000) then computes\nan internal checksum. Two official checksums are recognized:\n  GBA_BIOS_CHECKSUM    = 0xBAAE187F (standard GBA)\n  GBA_DS_BIOS_CHECKSUM = 0xBAAE1880 (DS GBA mode)\nOther checksums trigger a warning but the file is still loaded.\n",
            "source_ref": "source src/gba/hle-bios.c, src/gba/gba.c:513-552"
          },
          "gbc": {
            "bios_size": 2304,
            "hle_bios": false,
            "note": "Accepted CGB-family CRC32 checksums:\n  CGB = 0x41884E46, CGB0 = 0xE8EF5318, CGBE = 0xE95DC95D\n  AGB = 0xFFD6B0F1, AGB0 = 0x570337EA\n",
            "source_ref": "src/gb/gb.c:570-605"
          },
          "sgb": {
            "bios_size": 256,
            "hle_bios": false,
            "note": "Accepted SGB CRC32 checksums:\n  SGB = 0xEC8A83B9, SGB2 = 0x53D0DD63\nSGB2 maps here in standalone (marked TODO upstream). Libretro port\nomits SGB2 case, falls to gb_bios.bin.\n",
            "source_ref": "src/gb/gb.c:570-605, src/gb/core.c:654-656"
          }
        },
        "profiled_date": "2026-03-24",
        "source": "https://github.com/libretro/mgba",
        "source_commit": "7a12d6d4b9acb14c0ae62c9166b6a2f3d08007f6",
        "systems": [
          "nintendo-gba",
          "nintendo-gb",
          "nintendo-gbc",
          "nintendo-sgb"
        ],
        "type": "libretro",
        "upstream": "https://github.com/mgba-emu/mgba",
        "upstream_commit": "669817d03e4858e65d0b992bcd96d3009236cc1e",
        "version_basis": {
          "format": "{1}.{2}.{3}",
          "kind": "file",
          "path": "version.cmake",
          "pattern": "set\\(LIB_VERSION_MAJOR (\\d+)\\)\\s*\\nset\\(LIB_VERSION_MINOR (\\d+)\\)\\s*\\nset\\(LIB_VERSION_PATCH (\\d+)\\)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
