CD32-CDTV native release — 2026-05-23

Highlights
----------
- M2 Phase-1b: native CDTV CHD boot. Dune (1992) renders intro credits + desert
  animation via the new CDTV DMAC/TPI/CR-511 bridge + chip-RAM master DMA path.
  First-ever native CDTV CHD boot on MiSTer (no IDEFix97 / HDF launcher in the
  path).
- OSD redesign: System page CDTV row removed. IDE page now has a tri-state
  "I/O controller: OFF / IDE / CDTV" selector. CDTV mode relabels slots as
  CD0 / HD0 / HD1 / HD2 (SCSI). CD32 / A1200 modes keep the classic
  Pri/Sec x Master/Slave grid. Legacy IDE-ATAPI path preserved unchanged.

Artifacts
---------
Minimig_20260523.rbf    3590548 bytes   sha256-16=14E49EE09274AACC
MiSTer_CDTV_20260523    1043020 bytes   sha256-16=5EC7D25BE0CA88CD

Source provenance
-----------------
Minimig-AGA_MiSTer @ 8e87a59 (cd32-native-mvp branch)
   "cdtv: phase-1b chip-RAM master DMA -- Dune intro runs from native CHD"
Main_MiSTer        @ 15aca74+dirty
   tracked tip + uncommitted OSD-redesign / CDTV-userspace work
   (ide_cdrom.cpp ATAPI coexistence, cdtv_cd.cpp bridge, menu.cpp tri-state I/O)

Install (sidecar binary — no stock-MiSTer overwrite)
----------------------------------------------------
1. Copy Minimig_20260523.rbf to /media/fat/_Test/ on your MiSTer.
2. Copy MiSTer_CDTV_20260523 to /media/fat/ (keep stock /media/fat/MiSTer
   untouched). chmod +x /media/fat/MiSTer_CDTV_20260523.
3. Append the contents of MiSTer.ini.snippet to /media/fat/MiSTer.ini:
       [Minimig]
       main=MiSTer_CDTV_20260523
4. Copy all *.cfg files to /media/fat/config/.
5. Copy all *.mgl files to /media/fat/_Test/.
6. The MGLs reference _Test/Minimig_20260523 so they pick up the dated RBF
   without conflicting with stock Minimig installs.

How the swap works: on any Minimig core load the running stock MiSTer reads
[Minimig] from MiSTer.ini, sees main=MiSTer_CDTV_20260523, and execl()s into
the sidecar binary in place. FPGA bitstream stays loaded during the handoff.
Non-Minimig cores keep using the stock binary.

Blast-radius note: section name comes from the RBF's embedded CONF_STR
("Minimig"), not the filename — so loading the stock Minimig core will also
swap to our binary. Our binary is upstream-compatible for non-CDTV
functionality. If you'd prefer the swap only for the dated RBF, do a classic
overwrite install instead (cp stock MiSTer to MiSTer.bak first, then cp
MiSTer_CDTV_20260523 over /media/fat/MiSTer) and skip the MiSTer.ini
snippet.

Tested
------
- CDTV-DuneMVP.mgl: boots to Dune intro credits + desert animation (CDTV
  native path, validate_m2_phase1b.py: 36 READ DATA opcode-0x02 invocations
  in 30s, zero same-LBA retries).
- CannonFodder-CD32MVP.mgl: original CD32 native gate, still passes.
- 14 other CD32 launchers ship with per-game cpu/mem tunings as configured
  on the dev rig.
