Drop the hand-tuned/mislabeled variants; use the 9pt Song bitmap that matched the first-version 弦音色选择 look.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep GBK D4F1 mapping but revert glyph data to the pre-regeneration art that matched the known-good UI look.
Co-authored-by: Cursor <cursoragent@cursor.com>
Label-size 择 was inset and hard to read; scale the clear 16px bitmap into each size so it matches neighbors edge-to-edge.
Co-authored-by: Cursor <cursoragent@cursor.com>
Font table had wrongly mapped GBK 议 (D2E9) as 择; remap to D4F1 and regenerate the MiSans glyph so 弦音色选择/歌曲选择 render fully.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace settings-hub mixer/gear bitmaps, and show Boot IAP screen from UI0902_FLASH_MODE in external Flash.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse the unused Language slot as BluetoothSW, sync top-bar icon from the saved switch, and keep factory restore defaulting Bluetooth to on.
Co-authored-by: Cursor <cursoragent@cursor.com>
Raise ascii_115 '4' to match '5' height, nudge auto-off digits down 2px, and align version box / restore chevron to the shared val_x2 right edge.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unfocused FillRoundRect left blue pixels from the prior gradient roundrect; erase the full card box to page background first.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use correct BT/restore glyphs and triangle steppers, put version periods on the baseline, and center auto-off minutes between the triangles.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a lighter gray-blue at 2px so top and bottom dividers stay matched and readable on the dark background.
Co-authored-by: Cursor <cursoragent@cursor.com>
Put the status divider at y=36 and start mode rows at CARD_Y=48 so Universal matches transpose/tempo tops with draft row height 88 and pitch 92.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bottom fill started at y=263 and erased the lower 2px of the r=6 roundrects, so bottoms looked flatter than tops.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep icon and % as one right-aligned group, and leave a 1px gap between fill and shell so they no longer touch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Single-tap mode entry, hide top separator and row artifact line, center battery with vol/BT, and make % match digit height.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync faders on shutdown and re-apply LoadConfig after DSP boot so
saved mixer levels and master pot stay consistent after power-off.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drive measure-synced Loop_Light for TAB 0 (and settings entered from it) using the same 1645/1564/1364 rules as normal mode.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep L/R walls when generating the outline asset, tighten fill to the cavity, and nudge the icon up so the bottom edge is not clipped.
Co-authored-by: Cursor <cursoragent@cursor.com>
When no left-hand chord is selected, Pick_Handle uses index-1 major (same as preamble) so strumming still starts Autoband.
Co-authored-by: Cursor <cursoragent@cursor.com>
Always Send_volume in MainTask, re-apply after DSP settle, and sync vol_last so UI bar matches Dream gain.
Co-authored-by: Cursor <cursoragent@cursor.com>
Regenerate ascii_1608 from LiberationSans and lower binarization threshold so E/A/B strokes stay complete when switching keys.
Co-authored-by: Cursor <cursoragent@cursor.com>
PowerOff was calling nvic_system_reset after cutting rails, and boot auto power-on made it look like a restart.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use 1-bit RGB565 labels for 取消/确认 to avoid font corruption, and map autoclose to 15/30/45/60/off per the user manual.
Co-authored-by: Cursor <cursoragent@cursor.com>
Correct GBK codes for 取/消 so Cancel text shows; draw mixer back bitmap on mixer/settings/restore headers.
Co-authored-by: Cursor <cursoragent@cursor.com>
Centers 40/100/160/210, SECTION_Y 231, and SET_ROW 16x207 so play/settings pages match the standard art.
Co-authored-by: Cursor <cursoragent@cursor.com>
Confirm page now persists factory BPM/vols/params via drv_nvm and matches 0902-07/08 icon and button text spacing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Charge page draws UI0902_CHARGE_SCREEN instead of legacy 160x190 Charg.bin; pack/gen/publish paths keep the asset in sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
UI shows LocalSongNames instead of bare indices; pack regenerates the header; WQY font gains the four display characters.
Co-authored-by: Cursor <cursoragent@cursor.com>