Files
libretro/emulators/nicaiemu.yml
T
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00

45 lines
2.1 KiB
YAML

emulator: NicaiEmu
type: standalone + libretro
core_classification: pure_libretro
source: "https://github.com/AloysHF/NicaiEmu"
upstream: "https://github.com/AloysHF/NicaiEmu"
profiled_date: "2026-09-03"
source_commit: "43d016098be7e468cabfd46fa6b45047637d6c3a"
core_version: "0.1.0"
display_name: "MStar - Nicai (NicaiEmu)"
cores:
- nicaiemu
systems:
- mstar-nicai
notes: |
Emulator for Nicai/MStar CBE (Cool Bar Engine) phone games written in
Rust by AloysHF. The libretro core and the nicaiemu standalone binary
share the nicaiemu-core crate. A .cbe archive is read whole from its
full path (need_fullpath = true,
crates/nicaiemu-libretro/src/libretro/api.rs:108; load_machine,
crates/nicaiemu-libretro/src/libretro/api.rs:266-270; CbeArchive::load,
crates/nicaiemu-core/src/cbe/archive.rs:68-94). Code, scenes, maps,
actors, scripts, images and audio are sections of that archive, and
installed resource packages are parsed from the same bytes
(crates/nicaiemu-core/src/machine/packages.rs).
Phone services are implemented in Rust
(crates/nicaiemu-core/src/machine/services/). The guest file manager is
an in-memory sandbox that never touches the host disk
(crates/nicaiemu-core/src/machine/virtual_fs.rs:14-30). Text is decoded
as GBK and rasterised from the unifont crate compiled into the core
(crates/nicaiemu-core/src/machine/drawing.rs:41,
crates/nicaiemu-core/src/machine/drawing.rs:597). MIDI resources are
synthesised as decaying sine tones without a sound bank
(crates/nicaiemu-core/src/audio_engine.rs:238-243); WAV and MP3 are
decoded with symphonia.
The libretro crate asks the frontend for no directory. The standalone
binary reads and writes only the files named by --load-state and
--save-state (crates/nicaiemu/src/main.rs:114-118). No include_bytes!
data is compiled in.
exclusion_note: "No file is read outside the content: the .cbe archive is the only input, the guest filesystem is in-memory, glyphs come from the unifont crate and MIDI is synthesised without a bank, no directory is requested from the frontend, no data is embedded with include_bytes!, and the .info declares firmware_count = 0."
files: []