BeBox Emulator: Recreating the Iconic Dual-Processor BeOS Hardware
A high-fidelity emulator bringing classic PowerPC and Hobbit BeBox hardware to modern Haiku systems.
1Project Overview and Scope
BeBox is a specialized application for Haiku that emulates the original Be Inc. dual-processor computer. It supports both PowerPC models using original boot ROMs and the earlier AT&T Hobbit prototypes. The emulator provides a faithful environment for running BeOS versions ranging from Developer Release 6 through the final R5.0.3 release.
2Visual and Hardware Fidelity
The interface replicates the iconic front panel LED columns, featuring fifteen segments for CPU load monitoring. Users can toggle between lime and amber or red and green color schemes. The emulation includes critical components like the MPC105 bridge, interrupt control registers, and real-time clock, ensuring authentic system behavior during operation.
3Graphics and Audio Support
Display emulation covers resolutions from 640x480 up to 1280x1024, supporting both 8 and 32 bits per pixel. It utilizes the Number Nine #9 GXE64 graphics engine by default, with Cirrus Logic CL-GD5434 as an alternative. Audio output is handled through the Crystal CS4231A codec, integrated directly into the Haiku media kit.
4Storage and Connectivity Options
The emulator manages storage via NCR 53C810 SCSI controllers, supporting disks, CD-ROMs, and floppy images. It features four serial ports for console access and TCP connectivity. Ethernet is provided through an NE2000 compatible ISA card, utilizing libslirp for NAT-based internet access, allowing host ports to be forwarded to the emulated environment.
5Managing Machine Profiles
Users can organize configurations into distinct profiles, storing settings like boot ROMs, NVRAM, and hardware models. Profiles are saved as folders in the configuration directory, allowing seamless switching between different setups like the 66 MHz or 133 MHz models. This structure ensures that specific release requirements remain isolated and easily accessible.
6Hobbit Prototype Emulation
The project supports the rare 1993-94 Hobbit-based prototypes, though specific components like the three DSPs remain unimplemented. Since original boot ROMs for these units are lost, the emulator performs the boot process manually by loading the kernel directly. This allows users to access historical system files, headers, and early graphical interfaces.
7Shared Folder Mechanism
BeBox facilitates data exchange by mounting a Haiku folder as a SCSI disk within the emulated BeOS. Attributes such as file types and icons are preserved during the copy process. Upon shutdown, changes made inside the emulated environment are synchronized back to the host folder, ensuring persistent data management across sessions.
8Advanced Disk Management
The bebox-img tool provides robust management for raw and QCOW2 disk images, including thin provisioning capabilities. It allows users to inspect, convert, and extract files directly from BeOS volumes or Hobbit disk images. This utility is essential for accessing legacy data that standard BeOS releases cannot natively read or mount.
9Scripting and Automation
The application supports scripting via the 'hey' command, enabling automated control over machine states. Users can programmatically trigger power events, capture screenshots, or simulate keyboard input. Additionally, a headless mode is available for developers, facilitating automated testing, instruction tracing, and memory debugging without the overhead of a graphical window.
10Performance and Optimization
The emulator leverages host multi-core processing to handle the dual-processor architecture of the original BeBox. When both emulated CPUs are active, the system distributes the load across host cores, significantly improving performance on slower hardware. The status line provides real-time feedback on the emulation speed relative to a physical machine.
11Technical Foundation and Licensing
Built with portable C++17, the emulator core is designed for cross-platform compatibility and is actively tested on Linux. The project is released under the MIT License, with contributions from John Rash and icon design by zuMi. It relies on external ROMs and OS images, which are not included in the distribution.