CoolbarEmu¶
Technical notes
Emulator for Coolbar/CBE applications of Chinese feature phones, written in Rust. The workspace builds a standalone binary (crates/coolbaremu) and the libretro core (crates/coolbaremu-libretro), the buildbot builds the latter only (Cargo.toml:13). Guest ARM/Thumb code runs on the armv4t_emu crate and the phone firmware services are reimplemented in crates/coolbaremu-core/src/machine/services. Text is drawn with the unifont crate compiled into the core (Cargo.toml:35, crates/coolbaremu-core/src/machine/drawing.rs:1886).
The content is read whole by CbeArchive::load() (crates/coolbaremu-core/src/cbe/archive.rs:68-73). Files next to the .cbe (pay kernels, records, update data) are indexed as the guest filesystem (crates/coolbaremu-core/src/machine/mod.rs:1022-1024, crates/coolbaremu-core/src/machine/virtual_fs.rs:58-103), and they belong to the game.
The only system directory read is coolbaremu_orientation.csv, an optional user list of CRC32, size and orientation for landscape titles missing from the built-in table (crates/coolbaremu-libretro/src/libretro/api.rs:45, crates/coolbaremu-libretro/src/libretro/api.rs:369-399, crates/coolbaremu-core/src/orientation_profile.rs:31-54). A missing file is logged and the built-in table applies.
No BIOS or firmware files required.
Why no files
The firmware services are reimplemented in the core and the font is the embedded unifont crate. The system directory holds only an optional user-written orientation list.
Generated on 2026-10-20T03:49:41Z