MobiGo 2 Homebrew SDK¶
This manual is the current developer reference for building homebrew that runs through the MobiGo 2 resident firmware and for understanding the hardware below it. The project is an independent clean-room effort.
Start here¶
From a repository checkout:
The first command explains missing prerequisites. The second builds the default SY application and boots it through a role-aware in-memory overlay in Emulator2. Older emulator binaries fall back to a disposable NAND copy.
Install the prerequisites or follow the first-project walkthrough.
SY is the default target
G1 is a legacy opt-in profile used by several historical examples. Do not copy a G1 entry address, linker profile, device path, or install command into a new project. Read Target profiles before changing the default.
Manual map¶
| Section | Use it for |
|---|---|
| Start | host setup, first build, repository layout, target choice |
| Guides | application lifecycle, system behavior, graphics, audio, deployment |
| API | public headers, ownership contracts, target-only surfaces |
| Hardware | CPU, memory, display, audio, input, storage, registers |
| Software | boot flow, MBA format, resident services, resources, filesystem |
| Tools | unified CLI, emulator, Homebrew Manager, assets, NAND/USB, Ghidra |
| Testing | host, target, emulator, and physical evidence |
| Examples | focused probes and complete projects |
| Reference | matrices, terminology, limitations, licensing and safety |
What the SDK supplies¶
- Donor-free MBA construction for the supported SY and legacy G1 profiles.
- A C API for the resident lifecycle, input, touch, storage, UI resources, and audio services.
- Near-automatic Volume, Brightness, and Off behavior through
standard_controls.h. - A small target-only
hardware.hlayer for high-performance ports that need inherited framebuffer, watchdog, DMA, or raw matrix access. - Deterministic asset generators and emulator verification tools.
- NAND and USB workflows that discover regional slot filenames instead of assuming one.
- A light-blue-wave Homebrew Launcher and a backup-first Homebrew Manager.
Evidence policy¶
Statements are labeled when their evidence boundary matters:
- Verified means a named repeatable test or physical observation supports the behavior.
- Emulator-inferred means source, firmware, or related-chip evidence supports it, but physical behavior is not independently established.
- Unknown means applications must not depend on an invented answer.
The capability matrix is the single current
status ledger. Dated material under research/ is useful provenance, not the
development source of truth.
Safe development loop¶
- Edit application source.
- Run
python3 tools/mobigo.py build. - Run
python3 tools/mobigo.py testwhen changing shared behavior. - Boot through
python3 tools/mobigo.py run; use--mode accuratefor real-time pacing, diagnostic history, and reference comparison. - Exercise rendering, every consumed input, system controls, and any audio or storage path.
- Install on hardware only after copied-NAND tests and recovery preparation.
For a large existing codebase, use the porting guide.