{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "nicaiemu",
      "profile": {
        "core_classification": "frozen_snapshot",
        "core_version": "0.1.0",
        "cores": [
          "nicaiemu"
        ],
        "display_name": "MStar - Nicai (NicaiEmu)",
        "emulator": "NicaiEmu",
        "exclusion_note": "The firmware services are reimplemented in the core, glyphs come from the unifont crate and MIDI is synthesised without a bank. The system directory holds only an optional user-written orientation list, and the .info declares firmware_count = 0.",
        "files": [],
        "notes": "Emulator for Nicai/MStar CBE (Cool Bar Engine) phone games written in\nRust by AloysHF. The libretro core and the nicaiemu standalone binary\nshare the nicaiemu-core crate, and the workspace builds the libretro\ncore by default (Cargo.toml:13). The repository was renamed from\nAloysHF/NicaiEmu to AloysHF/CoolbarEmu with PR #78.\n\nA .cbe archive is read whole from its full path (need_fullpath = true,\ncrates/nicaiemu-libretro/src/libretro/api.rs:181, then load_machine,\ncrates/nicaiemu-libretro/src/libretro/api.rs:359-363, then\nCbeArchive::load, crates/nicaiemu-core/src/cbe/archive.rs:68-94). Files\nnext to the .cbe (pay kernels, save records, update data) are indexed as\nthe guest filesystem (crates/nicaiemu-core/src/machine/mod.rs:1022-1024,\ncrates/nicaiemu-core/src/machine/virtual_fs.rs:58-88), and they belong\nto the game.\n\nPhone services are implemented in Rust\n(crates/nicaiemu-core/src/machine/services/). Text is decoded as GBK and\nrasterised from the unifont crate compiled into the core (Cargo.toml:35,\ncrates/nicaiemu-core/src/machine/drawing.rs:1886). MIDI resources are\nsynthesised as decaying sine tones without a sound bank\n(crates/nicaiemu-core/src/audio_engine.rs:270-275), while WAV and MP3 are\ndecoded with symphonia.\n\nThe only system directory read is nicaiemu_orientation.csv, an optional\nuser list of CRC32, size and orientation for landscape titles missing\nfrom the built-in table (crates/nicaiemu-libretro/src/libretro/api.rs:45,\ncrates/nicaiemu-libretro/src/libretro/api.rs:365-399,\ncrates/nicaiemu-core/src/orientation_profile.rs:132-140). A missing file\nis logged and the built-in table applies. The standalone binary reads\nand writes only the files named on its command line, --orientation-profile,\n--screenshot, --save-state and --load-state\n(crates/nicaiemu/src/main.rs:104-107, crates/nicaiemu/src/main.rs:152-166,\ncrates/nicaiemu/src/main.rs:185-186).\n\nThe buildbot publishes nicaiemu_libretro next to coolbaremu_libretro, and\nthe two cores read different system files: nicaiemu_orientation.csv here,\ncoolbaremu_orientation.csv in the coolbaremu core built after the rename.\n",
        "pin_frozen": "the nicaiemu core is this revision, the last one whose .gitlab-ci.yml sets CORENAME: nicaiemu. The next master commit, 7496d513 (PR #78, 2026-10-16), renames the project and its crates to CoolbarEmu and the buildbot recipe to CORENAME: coolbaremu, so later commits build the coolbaremu core, described by coolbaremu.yml.",
        "profiled_date": "2026-10-21",
        "source": "https://github.com/AloysHF/CoolbarEmu",
        "source_commit": "4c9b73f7213b1537d2361a8b1d438857bdcdc798",
        "systems": [
          "coolbar"
        ],
        "type": "standalone + libretro",
        "upstream": "https://github.com/AloysHF/CoolbarEmu",
        "version_basis": {
          "kind": "file",
          "path": "Cargo.toml",
          "pattern": "version\\s+=\\s+\"([^\"]+)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
