Init
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Firmware v1.5.205 — analyzed image
|
||||
|
||||
Deep dive on the newest analyzed release (the version running on the dumped
|
||||
unit: every `strings≥6` in this image also occurs in IC300). Older releases and
|
||||
deltas: `rev-diff.md`. Container/code basics: `FINDINGS.md` §4.
|
||||
|
||||
## Vitals
|
||||
|
||||
- File `Lofi-12 XT.bin`: **1,707,049 B**, sha256
|
||||
`a8bffa65919c0a2d4ff2ce77d16301551af4d2964497b8804deed49ce4198026`,
|
||||
checksum `B17C0857`, triple (1, 5, 205), container (1, 3).
|
||||
- Entry **`C2CD1AA0`** (DSP reset prelude), **7 sects**, chain tiles EOF exactly.
|
||||
|
||||
## Composition
|
||||
|
||||
| # | Load addr | Len | Role |
|
||||
|---|---|---|---|
|
||||
| 0 | `C2DA7600` | 86,168 | asset/blob (`7e xx` bitmap/font/waveform pattern) |
|
||||
| 1 | `C2DA6DD4` | 688 | float table (filter/window coeffs) |
|
||||
| 2 | `C2DA7400` | 512 | fixed-record table (presets/patterns) |
|
||||
| 3 | `C2B80C00` | 1,490,112 | **code** (C674x LE, entropy ~6.89, ~12.6% zeros) |
|
||||
| 4 | `C2B809E8` | 8 | zero slot (alignment churn, not usable space) |
|
||||
| 5 | `C2D84DE0` | 125,081 | **rodata** (all strings, vtables; 6,362 code-ptrs, 3,141 self-ptrs) |
|
||||
| 6 | `C2DA5680` | 4,312 | float ramp tail |
|
||||
|
||||
## What it does (from strings/symbols)
|
||||
|
||||
- Groovebox app: patterns/songs/tracks/scenes, 16-slice engine, pad handling
|
||||
(`AppPad`), step sequencer + transport with precount, per-track swing/mute.
|
||||
- **Audio export** (`AppAudioExport*`, `DialogAudioExporting`, `MixDown~`):
|
||||
pattern/song mixdown + individual tracks, `MIXDOWN FILE NAME:`.
|
||||
- **MIDI Note Map** (`AppMIDINoteMap`), MIDI I/O + CC step-lock handling.
|
||||
- Master FX: `MIsolator`, `MRackComp`, `SlipRoll`, `HoldDelay`; sample `REVERSE`;
|
||||
tag search, file normalize/convert, `FILE DATABASE` (1,024 files/folder).
|
||||
- Storage: SD via `N3HAL` drivers; project chunk tags
|
||||
(`PJST/SMPS/PTD2/PTDT/PJCF/SONG/TRAU/…`); audio `RIFF/WAVE/smpl/cue`,
|
||||
`MThd/MTrk`; `FileUtil` recursive copy/search + `removeResourceFork`.
|
||||
- UI: OLED via custom `RenderBuffer` pipeline + `StepEditPageController`
|
||||
(`updateAppLED`); `SYSTEM INFO` (VERSION/BOOT/SYSTEM/MCU); `SYSTEM UPDATE`;
|
||||
full C674x crash dumper (`Legacy NMI Exception`, `A0–A31/B0–B31`).
|
||||
- Toolchain traces: libc++ RTTI (`NSt3__`…) ⇒ TI clang-based CGT.
|
||||
|
||||
## Learned / verified
|
||||
|
||||
- Unpacked + repacked with `tools/` → byte-identical (`cmp` clean).
|
||||
- `Threshold→ThresholX` Level-0 mod forges to self-consistent `462F735B`.
|
||||
- Top string-sect zero gaps (388/256/223/≈196 B) bound same-build string growth
|
||||
without pointer surgery.
|
||||
- v1.2→v1.5 added ~91 KiB code (export + note-map + 4 FX + transport rework);
|
||||
callback ABI migrated `Fv→Fvi/Fvii/Fviii`; display symbols turned over
|
||||
(`RenderBufferIhLi128ELi128ELi1327E` gone) — see `rev-diff.md`.
|
||||
Reference in New Issue
Block a user