mirror of
https://github.com/project-dorado/dorado-hd.git
synced 2026-10-12 02:21:19 +00:00
239 lines
9.2 KiB
JSON
239 lines
9.2 KiB
JSON
{
|
|
"audit": "zune-hd-parity-audit",
|
|
"date": "2026-09-10",
|
|
"corpus": "zune-hd-disassembly (109 modules, 66598 functions, 4169 exports, 22479 strings)",
|
|
"axes": {
|
|
"device": "behaviour the Zune HD itself had",
|
|
"modern": "post-device extension (canon \u00a710)",
|
|
"na": "device subsystem deliberately out of scope"
|
|
},
|
|
"gaps": [
|
|
{
|
|
"id": "queue-surface",
|
|
"surface": "Play queue list",
|
|
"axis": "device",
|
|
"priority": 1,
|
|
"effort": "S",
|
|
"status": "done",
|
|
"device_evidence": "gemstone.exe GemQueueListScene / GemNowPlayingMusicListScene",
|
|
"hd_state": "PlaybackController.enqueue exists (media/PlaybackController.kt:153); no queue UI",
|
|
"milestone": "M12",
|
|
"resolution": "Showlist overlay + PlaybackController.removeAt (NowPlayingScreen QueueOverlay)."
|
|
},
|
|
{
|
|
"id": "picture-zoom",
|
|
"surface": "Picture pinch-zoom / pan client",
|
|
"axis": "device",
|
|
"priority": 2,
|
|
"effort": "M",
|
|
"status": "done",
|
|
"device_evidence": "gemstone.exe GemPictureTouchClientScene, GemZoomTouch",
|
|
"hd_state": "static ContentScale.Fit (ui/screens/MediaScreens.kt:657)",
|
|
"milestone": "M13",
|
|
"resolution": "Pinch-zoom/pan/double-tap in PictureDetailScreen (M13)."
|
|
},
|
|
{
|
|
"id": "np-scrubber",
|
|
"surface": "Now Playing scrubber + elapsed/remaining",
|
|
"axis": "device",
|
|
"priority": 3,
|
|
"effort": "S",
|
|
"status": "done",
|
|
"device_evidence": "zhud_serv.dll ProgressSlider, PlayPosition, ElapsedTime/TotalTime/RemainingText",
|
|
"hd_state": "time text only; seekTo exists but no UI (ui/screens/NowPlayingScreen.kt:237)",
|
|
"milestone": "M12",
|
|
"resolution": "Hairline seek bar + elapsed/remaining in TransportOverlay (NowPlayingScreen)."
|
|
},
|
|
{
|
|
"id": "kinetic-model",
|
|
"surface": "Kinetic integrator model + 0.95 provenance",
|
|
"axis": "device",
|
|
"priority": 4,
|
|
"effort": "M",
|
|
"status": "partial",
|
|
"device_evidence": "xuidll.dll FUN_41841D58 pos+=(dt/1000)*v, dt floor 33.333; v'=v*(1+c[+0xB0]) clamped +/-step*c[+0xB4]; tick 16ms FUN_41848B98; velocity cap 32 FUN_4184C310",
|
|
"hd_state": "exponentialDecay, KINETIC_FRAME_RETENTION=0.95 wrongly attributed to XuiTouchSettings[0x1C] (design/DoradoMotion.kt:29; docs/zune-hd-touch-settings.md)",
|
|
"milestone": "M12",
|
|
"resolution": "Tick set to device 62.5 Hz; 0.95 provenance corrected to empirical; dt-scaled glide still approximated (M13)."
|
|
},
|
|
{
|
|
"id": "library-search-ui",
|
|
"surface": "Indexed library search UI",
|
|
"axis": "device",
|
|
"priority": 5,
|
|
"effort": "S",
|
|
"status": "done",
|
|
"device_evidence": "zcontent_serv.dll content service; gemstone search",
|
|
"hd_state": "LibraryRepository/Daos search() defined with no caller (data/db/Daos.kt:68)",
|
|
"milestone": "M12",
|
|
"resolution": "Debounced search mode in MusicScreen wired to LibraryRepository.search."
|
|
},
|
|
{
|
|
"id": "hud-dimmer-status",
|
|
"surface": "HUD dimmer / power-off / status OSD",
|
|
"axis": "device",
|
|
"priority": 6,
|
|
"effort": "M",
|
|
"status": "partial",
|
|
"device_evidence": "zhud_serv.dll HudDimmerScene/HudOffSwitchScene; batteryIcon/wifiIcon/Clock/Ambient; dwells 7000/5000/3000/30000/12000ms",
|
|
"hd_state": "none",
|
|
"milestone": "M13",
|
|
"resolution": "Dimmer veil + battery/clock status OSD done (M13); notification ladder/power-off pending."
|
|
},
|
|
{
|
|
"id": "eq-presets",
|
|
"surface": "Equalizer presets",
|
|
"axis": "device",
|
|
"priority": 7,
|
|
"effort": "M",
|
|
"status": "done",
|
|
"device_evidence": "zmedia_serv.dll Software\\Microsoft\\Zune\\Equalizer, Preset%02d",
|
|
"hd_state": "no AudioEffect/Equalizer",
|
|
"milestone": "M14",
|
|
"resolution": "EqPreset + EqualizerController + Settings selector (M14, best-effort platform EQ)."
|
|
},
|
|
{
|
|
"id": "share-send",
|
|
"surface": "Share / ACTION_SEND + Zune-Card export",
|
|
"axis": "device",
|
|
"priority": 8,
|
|
"effort": "M",
|
|
"status": "done",
|
|
"device_evidence": "gemstone.exe GemLibrarySendComposeScene, GemLibrarySendFriendsListScene",
|
|
"hd_state": "none (roadmap M5)",
|
|
"milestone": "M15",
|
|
"resolution": "ACTION_SEND share sheet from Now Playing (M15)."
|
|
},
|
|
{
|
|
"id": "audiobooks",
|
|
"surface": "Audiobook parts",
|
|
"axis": "device",
|
|
"priority": 9,
|
|
"effort": "L",
|
|
"status": "missing",
|
|
"device_evidence": "gemstone.exe GemLibraryAudiobookPartScene; AAXSDKWin.dll/audible.dll",
|
|
"hd_state": "no audiobook model",
|
|
"milestone": "long-term",
|
|
"resolution": "New media model; largest remaining gap. Long-term."
|
|
},
|
|
{
|
|
"id": "marketplace-discovery",
|
|
"surface": "Marketplace search / top / genres / game details",
|
|
"axis": "device",
|
|
"priority": 10,
|
|
"effort": "L",
|
|
"status": "done",
|
|
"device_evidence": "gemstone.exe GemMarketplaceSearchScene/MusicTopScene/MusicGenresContentScene/GamesDetailsScene; znet_serv.dll catalog endpoints",
|
|
"hd_state": "frozen 62-entry OfficialCatalog (ui/screens/MarketplaceScreens.kt:322)",
|
|
"milestone": "M15",
|
|
"resolution": "Catalog search + entry details over the frozen catalog (M15)."
|
|
},
|
|
{
|
|
"id": "builtin-playlists",
|
|
"surface": "Built-in playlists",
|
|
"axis": "device",
|
|
"priority": 11,
|
|
"effort": "M",
|
|
"status": "partial",
|
|
"device_evidence": "zcontent_serv/zmedia_serv mtp:PlaylistRef_Favorite/Recent/TopArtists, BuiltIn-*",
|
|
"hd_state": "Quickplay history/pins + Top Played only",
|
|
"milestone": "long-term"
|
|
},
|
|
{
|
|
"id": "inbox-usercard",
|
|
"surface": "Inbox + social user card",
|
|
"axis": "device",
|
|
"priority": 12,
|
|
"effort": "M",
|
|
"status": "partial",
|
|
"device_evidence": "gemstone.exe GemInboxListContentScene/GemInboxDetailsScene/GemUserCardScene",
|
|
"hd_state": "mock shells only (ui/apps/mocks/Mocks.kt:90)",
|
|
"milestone": "M15",
|
|
"resolution": "Local Zune Card (tracks/hearts/plays) shipped (M15); inbox still needs a backend (mock shell only)."
|
|
},
|
|
{
|
|
"id": "pinlock-wifi",
|
|
"surface": "PIN/screen lock + Wi-Fi info settings",
|
|
"axis": "device",
|
|
"priority": 13,
|
|
"effort": "M",
|
|
"status": "missing",
|
|
"device_evidence": "gemstone.exe GemSettingPinLockScene/GemSettingScreenLockScene/GemSettingWifiInfoScene",
|
|
"hd_state": "wake shade only (design/components/LockShade.kt)",
|
|
"milestone": "long-term"
|
|
},
|
|
{
|
|
"id": "string-parity",
|
|
"surface": "Label/empty-state vocabulary",
|
|
"axis": "device",
|
|
"priority": 14,
|
|
"effort": "XS",
|
|
"status": "declined",
|
|
"device_evidence": "gemstone.exe 'Various Artist'@0x119A4, ' by '@0x15A60, noItems/Empty@0x14160/0x12B7C, Ffwd/Mute@0x19D18/0x19D2C",
|
|
"hd_state": "'unknown artist' (MediaLibraryScanner.kt:64), em-dash separator (Common.kt:291), bespoke empty states",
|
|
"milestone": "M12",
|
|
"resolution": "Device strings are resource keys, not confirmed display copy (canon \u00a711 decision)."
|
|
},
|
|
{
|
|
"id": "font-import",
|
|
"surface": "Zegoe import path (or drop the claim)",
|
|
"axis": "device",
|
|
"priority": 15,
|
|
"effort": "S",
|
|
"status": "declined",
|
|
"device_evidence": "assets/fonts/ZegoeUI*.ttf; registered via registry Software\\Microsoft\\Zune\\Fonts",
|
|
"hd_state": "docs promise import (zune-hd-ui-canon.md:20) but no code path; Selawik lacks Black/Medium",
|
|
"milestone": "M12",
|
|
"resolution": "Claim dropped; Zegoe import not implemented in v1 (canon \u00a72, README, DoradoTheme)."
|
|
},
|
|
{
|
|
"id": "velocity-cap-snap",
|
|
"surface": "Fling velocity cap + item snap + rubber-band",
|
|
"axis": "device",
|
|
"priority": 16,
|
|
"effort": "S",
|
|
"status": "done",
|
|
"device_evidence": "xuidll.dll FUN_4184C310 cap 32.0; XuiTouchSnapToTarget@0x41833134; FUN_41848FC4 rubber-band",
|
|
"hd_state": "no cap/snap; relies on platform overscroll",
|
|
"milestone": "M12",
|
|
"resolution": "Velocity cap (ZuneFling) + item snap (KineticList snap) (M12/M13)."
|
|
}
|
|
],
|
|
"na": [
|
|
{
|
|
"id": "na-marketplace-backend",
|
|
"surface": "Marketplace backend + Passport + subscriptions",
|
|
"device_evidence": "znet_serv.dll SEID_Catalog/SignInRequest/urn:passport:compact"
|
|
},
|
|
{
|
|
"id": "na-drm",
|
|
"surface": "DRM license / PlayReady / WMDRM",
|
|
"device_evidence": "CeDRM_Mgr_*, ZWmtStreamer XDRM*, wmdrm.dll"
|
|
},
|
|
{
|
|
"id": "na-wma",
|
|
"surface": "WMA/WMV playback + HTTP streaming",
|
|
"device_evidence": "ZWmtStreamer.dll 'Zune MarketPlace HTTP Streaming Source'"
|
|
},
|
|
{
|
|
"id": "na-mtpz",
|
|
"surface": "MTPZ/UPnP identity + Wi-Fi config",
|
|
"device_evidence": "znet_serv /Device.xml, urn:microsoft-com:device:mtpz:1; wzcsapi.dll"
|
|
},
|
|
{
|
|
"id": "na-tvout",
|
|
"surface": "TV-out selector",
|
|
"device_evidence": "gemstone.exe GemTvOutputSelectorScene"
|
|
},
|
|
{
|
|
"id": "na-telemetry",
|
|
"surface": "Usage/telemetry reporting",
|
|
"device_evidence": "znet_serv usageReport, SEID_Stats/UsageData"
|
|
},
|
|
{
|
|
"id": "na-acs",
|
|
"surface": "ACS touch firmware update",
|
|
"device_evidence": "gemstone.exe GemAcsFWScene, Acsapi_BeginFwUpdate"
|
|
}
|
|
]
|
|
} |