19 lines
897 B
Markdown
19 lines
897 B
Markdown
# MCPI Runtime
|
|
**Fact:** MCPI is a 32-bit ARM binary.
|
|
|
|
**Another fact:** Most modern computers do not use 32-bit ARM and therefore cannot run MCPI natively.
|
|
|
|
**Solution:** This project allows MCPI to run on modern computers.
|
|
|
|
## How
|
|
This project works differently depending on the host system's architecture.
|
|
|
|
### 64-Bit x86 Host
|
|
On this platform, a patched version of QEMU is used.
|
|
|
|
QEMU emulates ARM code so MCPI can run on x86 hardware. And the patch adds a system-call which allows MCPI to run graphics code on the host. This prevents the need for emulated GPU drivers.
|
|
|
|
### 64-Bit ARM Host
|
|
QEMU is not necessary on this platform because it can already run 32-bit ARM code natively.
|
|
|
|
Instead, the runtime is implemented as two processes: a parent and a child. The child becomes MCPI and can send graphics commands to the parent. And because the parent is 64-bit, 32-bit drivers are not needed. |