Skip to content

Gr2fixes - #250

Merged
techomancer merged 4 commits into
mainfrom
gr2fixes
Oct 18, 2026
Merged

techomancer merged 4 commits into
mainfrom
gr2fixes

Conversation

@techomancer

Copy link
Copy Markdown
Owner

fixes for blender and screensavers on gr2/xz

techomancer and others added 4 commits October 17, 2026 16:16
Blender 1.0's Shift+A toolbox (IRIX 5.3) never showed: IRIS GL
drawmode(OVERDRAW / PUPDRAW) switches with MakeCurrent 11 (8 for the 4-bit
overlay), colour planes masked off and 0x003 naming the aux bits to write,
then draws in colour indices. The HLE kept 12-bit RGB with a zero write
mask, so the whole menu went nowhere. GL drawing now targets the aux
planes in those modes (index into the aux bits as the 2D path's value2d
does) and resets them afterwards.

sbox / sboxi (0x052 / 0x4052, a screen-aligned box outline) was not
implemented; Blender draws its grids and button borders as degenerate
boxes. Each outline pixel is drawn once.

Monitor: `ps2 key <shift|ctrl|alt> <down|up>` holds a modifier across
other input; IRIS GL programs read the modifier's state when they handle
the key, so `ps2 type A` reached Blender as a plain a.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ps2 mouse sent one packet per command, so moves past the 9-bit delta
range were mangled and large ones hit X's acceleration erratically.
Send the move as packets of at most 50 mickeys an axis, one a
millisecond, the last carrying the remainder so the path stays straight.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Token 0x008 is gl_setreadsource (plane, absolute bank), not a draw-buffer
no-op. Blender keeps its views in the back buffer and copies them to the
front with readsource bank 1 and write mask 0x000FFF; reading bank 0
left views black on first open and made headers vanish when the pointer
moved between views. libgl sends no swap tokens, so the absolute bank
goes straight into read_src.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
expPolyPoint sends 0x161 after LINE_MODE / LINE_CLIP: a stream of
(x, y) points, padded with (1280, 1024) pairs. It was unhandled, so
xlock's pop and hop modes (the Pop and Space Plants screen savers)
drew only their black window. Each point is drawn as a one-pixel line
through the line clip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@techomancer
techomancer merged commit 96e227b into main Oct 18, 2026
7 checks passed
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.

1 participant