NicaiEmu
NicaiEmu emulates Coolbar feature phones.
About this profile
Technical 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, and the workspace builds the libretro core by default (Cargo.toml:13). The repository was renamed from AloysHF/NicaiEmu to AloysHF/CoolbarEmu with PR #78.
A .cbe archive is read whole from its full path (need_fullpath = true,
crates/, then load_machine,
crates/, then
CbeArchive::load, crates/). Files
next to the .cbe (pay kernels, save records, update data) are indexed as
the guest filesystem (crates/,
crates/), and they belong
to the game.
Phone services are implemented in Rust
(crates/nicaiemu-core/src/machine/services/). Text is decoded as GBK and
rasterised from the unifont crate compiled into the core (Cargo.toml:35,
crates/). MIDI resources are
synthesised as decaying sine tones without a sound bank
(crates/), while WAV and MP3 are
decoded with symphonia.
The only system directory read is nicaiemu_orientation.csv, an optional
user list of CRC32, size and orientation for landscape titles missing
from the built-in table (crates/,
crates/,
crates/). A missing file
is logged and the built-in table applies. The standalone binary reads
and writes only the files named on its command line, --orientation-profile,
--screenshot, --save-state and --load-state
(crates/, crates/,
crates/).
The buildbot publishes nicaiemu_libretro next to coolbaremu_libretro, and the two cores read different system files: nicaiemu_orientation.csv here, coolbaremu_orientation.csv in the coolbaremu core built after the rename.
No BIOS or firmware files required.
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start