Skip to content

Claude/project thread iikeci - #82

Closed
austinbaccus wants to merge 7 commits into
MrMilenko:mainfrom
austinbaccus:claude/project-thread-iikeci
Closed

austinbaccus wants to merge 7 commits into
MrMilenko:mainfrom
austinbaccus:claude/project-thread-iikeci

Conversation

@austinbaccus

Copy link
Copy Markdown

No description provided.

claude and others added 7 commits October 24, 2026 03:46
Replaces the MP4 capture of the boot animation with the real thing:
re-xbox-boot is vendored as a submodule (theseus/third-party/xboot), its
portable C core is compiled into every desktop target, and its data pack
is built by the boot repo's own pack.py (checked against its SHA-256) and
embedded into the binary.

boot_anim.cpp ports the boot repo's WebGPU renderer (hosts/web) to bgfx:
light views, veil target, logo texture, the 2x wide drawing surface and
the D5 resolve, with the per-draw render states the core reports. The
WGSL programs and combiners are ported to bgfx shaders under
shaders/xboot/ and compiled for metal, spirv, glsl and essl. The sound
runs on a second core instance through its own SDL audio device.

When the core reports t = 8 s (or the user skips), everything is torn
down and the dashboard starts in the same window. Configs/xbox_boot.mp4
and the libmpv boot path are removed.

CI: a Windows job builds shaderc and compiles the D3D11 versions of the
new shaders (fxc only exists on Windows) and checks them against
Data/shaders/dx11.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAdHz7kjeqokCpg5ML4XS2
Compiled by the Shaders / D3D11 job (shaderc s_5_0 on windows-latest).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAdHz7kjeqokCpg5ML4XS2
Boot animation: the picture now fills any window 4:3 or wider. The
core's 4:3 projection is narrowed in clip x for everything drawn into the
surface and the veil's target, so 16:9, 21:9 and 32:9 see more of the
chamber at the sides instead of black bars. The veil and the quad into
its target keep covering the screen; the disc in the target reads clip x
through c[114].x, which takes the inverse so it stays round.

Dashboard: with Emulate Xbox Resolution on (the default), the 3:2 design
projection was stretched to the window, so wide windows came out
distorted. It now keeps the 3:2 vertical field and widens horizontally
(narrower windows keep the 3:2 horizontal field instead). The console
build is unchanged. Exclusive fullscreen picks a mode in the display's
own shape instead of 16:9.

F9 (or View > FPS / Debug Overlay) toggles the --graphics-debug panel:
FPS over the real frame interval, a frame time graph, update / draw /
ImGui / present times, bgfx GPU and render thread time, draw calls,
renderer, backbuffer size, vsync, MSAA, cap, CRT and display refresh.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAdHz7kjeqokCpg5ML4XS2
Advance() took its time from GetTickCount() through a float. On Windows
that counter is system uptime in 15.6 ms steps, so at 120 FPS every other
frame saw no time pass and the rest saw a whole tick: motion stepped at
about 64 Hz, unevenly. Cast to float, uptime of a few days loses the
fraction entirely (steps of 1/16 s after a week), which is the 5 to 15
FPS stutter under a 120 FPS counter. The clock is now the high
resolution counter in double, from process start. Every user of
TheseusGetNow() works on differences, so the origin change is safe.

InitApp's InitD3D leaves the view size at a 1280x720 placeholder until
the first resize event, and exclusive fullscreen sends none, so a 21:9 or
32:9 screen showed the dashboard stretched until the window was
minimized and restored. The real drawable size is applied right after
InitApp.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAdHz7kjeqokCpg5ML4XS2
Play the reverse engineered boot animation before the dashboard
Launching any title from the Games list did nothing on Windows, Steam URLs
and plain executables alike.

launch() hands DesktopLaunchTitle a \Device\Harddisk0\PartitionN\...
path. XboxFS_IsHostPath only recognized drive letter virtual trees, so it
treated the device path as a real Windows path and returned it untouched,
skipping the partition remap. Device paths are now never host paths.

VGames_MatchFolder then still could not match: callers pass forward
slashes, but the expected path is built from %APPDATA% and keeps its
backslashes. Both sides are folded to '/' before comparing.

The failure was invisible because theseus.log never received stderr. In a
GUI subsystem process _fileno(stderr) is -2, so the _dup2 onto it failed.
The log is now truncated once and both streams reopen it in append mode.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@austinbaccus
austinbaccus deleted the claude/project-thread-iikeci branch October 25, 2026 17:33
@austinbaccus
austinbaccus restored the claude/project-thread-iikeci branch October 25, 2026 17:34
@austinbaccus
austinbaccus deleted the claude/project-thread-iikeci branch October 25, 2026 17:35
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