Skip to content

Rhythm Heaven Groove: A16 legacy support, touch pad and ambient bars - #28

Closed
Roylam23 wants to merge 1 commit into
seedds:mainfrom
Roylam23:a16-legacy
Closed

Roylam23 wants to merge 1 commit into
seedds:mainfrom
Roylam23:a16-legacy

Conversation

@Roylam23

@Roylam23 Roylam23 commented Oct 21, 2026 •

Copy link
Copy Markdown

Summary

This adds the A16 / older-iPhone support and the complete Rhythm Heaven Groove adaptation:

  • A16 BC fallback: decodes BC1–BC7 textures on the CPU when the GPU has no BC sampling (dm/third_party/bcdec), with an optional offline BC → ASTC cache (BCA1, keyed by the guest texture hash) and a guard for BC-format views of decoded textures.
  • A16 build mode: A16=1 forces the software BC path, packages dm/bc_astc, makes a split IPA by default, limits the shared fonts to three slots, and gives the app its own .a16 bundle suffix so it can sit beside the normal build. dm/tools/make_astc_cache.py generates the cache from a DM_NVN_BC_DUMP run.
  • Rhythm Heaven Groove touch controls: a two-zone rhythm pad with B on the left, + / − on the right and A over the picture; A-only minigames accept A over the whole picture. Title/caution keeps the hidden right-half A and the start menu keeps its left-swipe navigation. Scene changes follow the game's own asset loads and can be overridden on-device with Documents/touch_layouts.tsv.
  • Ambient side bars: the present pass keeps the 16:9 picture centred and paints the side bars with a frosted edge-only glow (no repeated horizontal rays). DM_AMBIENT=0 restores black bars.

The Rhythm Heaven profile opts into the rhythm layout with pad_layout rhythm; the generic gamepad remains available with DM_RHYTHM_FULL=1.

Test

  • make -C dm/host GAME=0100D9F01D474000
  • t_touch_layout: ok
  • t_rhythm_pad: ok
  • iOS A16=1 build: succeeded (split, unsigned, six-file ASTC cache; bundle org.nxnative.0100d9f01d474000.a16; also built with the older zh-Hant env, exercising the DM_LEGACY shared-font fallback). The split IPA needs the RomFS in Documents/romfs; device installation is left to the tester.

The full host test suite still has the two pre-existing t_oe failures unrelated to this change.

…t bars

A16 / older iPhones have no hardware BC texture sampling. Decode BC1-7 on the CPU, prefer an offline BCA1 ASTC cache, and package it with a split A16 build that limits the shared fonts to three slots. The A16 build is opt-in with A16=1 and can sit beside the normal app.

Rhythm Heaven Groove uses a two-zone touch pad: B on the left, + / - on the right and A over the whole picture in A-only minigames. The scene tables cover the title, start menu, menus and the minigames; the full-screen present pass paints the side bars with a frosted ambient glow.

Tests: t_touch_layout, t_rhythm_pad, Mac host build; the iOS build path uses A16=1.
@Roylam23

Copy link
Copy Markdown
Author

Branch renamed to feat/rhythm-heaven-groove-optimize; the same changes are reopened as #29.

@Roylam23 Roylam23 closed this Oct 21, 2026
@Roylam23
Roylam23 deleted the a16-legacy branch October 21, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants