Skip to content

Tags: thwonp/NextUI

Tags

zero28-20260523-2

Toggle zero28-20260523-2's commit message
ci: pass explicit GITHUB_TOKEN to all checkout steps in release-zero28

ubuntu-24.04-arm runners have a system git credential helper that
interferes with HTTPS fetches when no token is provided, causing
checkout to fail even on public repos.

zero28-20260523-1

Toggle zero28-20260523-1's commit message
zero28: fix wifi reconnect, Settings freeze, and nav hiccups

bssid=00:00:00:00:00:00 in wpa_supplicant.conf acts as a BSSID filter
matching no real AP, causing wpa_supplicant to scan forever and never
associate. This breaks reconnect after game exit and RetroAchievements.

wifi_init.sh start: after wpa_supplicant socket is ready, sweep
list_networks and call set_network bssid any for any zero-BSSID entry,
then reassociate. Handles existing corrupted configs on every start.

generic_wifi.c PLAT_wifiConnectPass: call set_network bssid any before
enable_network so future save_config calls don't persist the zero BSSID.

wifimenu.cpp updater: pre-compute WIFI_isKnown results outside WriteLock
to eliminate wpa_cli subprocess spawning while the lock is held. Add 500ms
initial delay so Settings renders one frame before the worker runs its
first scan. Reduces scan sleep from 2s to 1s in PLAT_wifiScan.

zero28-20260514-1

Toggle zero28-20260514-1's commit message
zero28: add extra emu paks skeleton and wire into release workflow

Adds skeleton/EXTRAS/Emus/zero28/ with all 30 extra emu pak dirs
(launch.sh, default.cfg, .keep). 24 paks carry their own dedicated .so
via make cores; 6 stock-core paks (GG/SMS/SG1000/FDS/32X/SEGACD) rely
on system CORES_PATH env var pointing to .system/zero28/cores/.

Updates release-zero28.yaml: replaces manual find/cp with make cores
PLATFORM=zero28, adds Emus/zero28/ to MinUI.zip payload.

z28-007av3

Toggle z28-007av3's commit message
zero28: fix volume — open event2 for volume keys, fix digital volume …

…init

- keymon: INPUT_COUNT 2→3 to open event2 (magicx-input); volume buttons
  emit KEY_VOLUMEUP/DOWN on event2, not event0/event1
- msettings: set 'digital volume' to 63 (max/0dB), not 0 (muted/-74dB)

z28-007av2

Toggle z28-007av2's commit message
zero28: fix volume — correct ALSA chain init, raw scale, and mute value

- InitSettings: add 'digital volume' 0 and 'Soft Volume Master' 255 init
  so the digital chain is at max on boot (without this, no gameplay audio)
- scaleVolume: use MinUI's raw formula (0 or 96-160) instead of 0-100%
- SetRawVolume: remove -D hw:audiocodec and %% suffix; use raw integer
- MUTE_VOLUME_RAW: 63 → 0 (0 = silent on this device, 160 = loudest)

z28-007av

Toggle z28-007av's commit message
zero28: invalidate shader cache when GLSL source is newer (007av)

link_program cached compiled binaries by filename only — any modification
to a .glsl source file was silently ignored, the device kept loading the
stale .bin. Bit 007ar (MVPMatrix uniform missed because pre-MVPMatrix
binary kept loading) and would silently break end users on any future
release that touches default.glsl/overlay.glsl/noshader.glsl.

Add a source_path parameter to link_program; stat both source and cache
and only load the cache when both stats succeed and source mtime <=
cache mtime. Any stat failure falls through to recompile (safe default).
Update all four call sites to pass the source path they already have.

Platform-neutral; tg5040/tg5050/desktop benefit from the same fix.

z28-007au

Toggle z28-007au's commit message
zero28: rotation-aware PLAT_GL_screenCapture

FBO 0 is portrait-sized (480x640) after 007ar added a 90° CW MVPMatrix
in runShaderPass. The old code read 640x480 — out of bounds — and
returned unrotated content, breaking the in-game menu underlay and all
other screenCapture callers on zero28.

When should_rotate is set:
- Read portrait FBO (480x640) into a raw buffer
- Rotate 90° CCW into a landscape dst buffer (640x480) to undo the CW
  MVPMatrix, using the index formula from the plan sketch
- Apply PLAT_pixelFlipper on the final dst so callers see the same Y
  convention as the unrotated path

When !should_rotate: functionally identical; drop the now-pointless
glGetIntegerv round-trip and use device_width/device_height directly.

z28-007w12

Toggle z28-007w12's commit message
zero28: replace custom GL rotation blit with SDL_RenderCopyEx (007w12)

z28-007w11

Toggle z28-007w11's commit message
zero28: revert diagnostic + render target_composite via rotation blit…

… (007w11)

z28-007w10

Toggle z28-007w10's commit message
zero28: route PLAT_GPU_Flip through rotation blit (007w10)