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>
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>
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>
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>
Pick fires on downstroke; #IV drops an octave; local songs use 2.bin; transpose updates notes without restart; intro starts on key I; boot string volume/PC corrected.
Co-authored-by: Cursor <cursoragent@cursor.com>
Settings hub/mixer/system/restore match 0904 layouts; regenerate Chinese bitmaps without shrinking native 16px cells so strokes stay continuous.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the mistaken fill bitmap that embedded "80%" text with a solid level bar, right-align size-9 "N%" with reserved 100% width, and refresh Free/Expert battery updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move KEY/BPM values and chevrons toward mode.png rhythm, drop musical-flat b and digit dilation so Db and body digits stay complete without looking bold.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match mode.png: widen card value slots, use ASCII advance spacing so 1364 is not cramped, and draw the section/nav divider line.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match card/row/section positions and sizes from the 240x320 reference, restore 16px hero values, and place the 和弦走向 title above the row like timbre.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace drawn chevrons on transpose/song/timbre rows with 控件-11/12 solid triangle bitmaps from the 0902 asset pack.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use Liberation Sans for KEY/BPM/Db with wider ASCII cells, redraw KEY/BPM after value refresh, and reuse the centered timbre layout on refresh so a second line no longer appears.
Co-authored-by: Cursor <cursoragent@cursor.com>
Save current UI textbox layout and font regen so we can restore with
git reset --hard checkpoint/misans-before-wqy if MicroHei trial fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply measured 240x320 geometry for cards, tabs, rows, and section buttons, and recenter text so KEY/BPM, battery %, and row labels no longer clip.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply label/body/hero hierarchy (11/13/16), enlarge section digits to 13, and switch the bottom bar to 万能|普通|专业|设置 while keeping touch/key logic.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use size-12 tabs with full 节/类/型/地/目 coverage, denser MiSans bitmaps, dark row chrome, and safer section-label draw order; skip ASCII regen by default.
Co-authored-by: Cursor <cursoragent@cursor.com>
Widen TAB text margins at 11px, regenerate section/timbre labels, and regenerate MiSans bitmaps with padding so strokes are not cut.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enable TP_MIRROR_X for left/right hits, draw blue numeric mixer knobs, and restyle system settings rows with title order and chevron values.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fill three mode rows to the screen bottom without a nav bar, and fix the status bar to one volume meter, centered Bluetooth, and battery percentage.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Mode select page draws 222x84 row bitmaps from external flash
- Mixer page uses flash track/knob images with picture labels
- Settings and restore pages re-laid out with 0902 row style
- New status bar icons and battery outline+clip fill rendering
- Add LCD_WR_PIC_ClipX and LCD_WR_PIC_FROM_FLASH_Trans draw APIs
- Replace 4-tab bar with GUI_NAV_BAR 3-icon bottom navigation
- Swap 0831 assets for UI0902 in the IAR project file
Co-authored-by: Cursor <cursoragent@cursor.com>
Only the focused control uses the blue gradient; unfocused widgets use the dark normal background. Drop invalid Commander commands from IAR jlink_script_file to stop V5.10m parse popups.
Co-authored-by: Cursor <cursoragent@cursor.com>
Regenerate Chinese/English font tables, extend LCD driver for new sizes, and update screen layouts; add gen_misans_font.py for reproducible font builds.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the battery white in the status bar, center it vertically, and use 16px ASCII font so the percentage renders correctly instead of garbled characters.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the old volume bars with 5 rounded-top bars using a left-to-right brightness gradient, synced from the ADC volume pot.
Co-authored-by: Cursor <cursoragent@cursor.com>