<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Walnut Games</title>
		<link>https://walnut.nanobyte.dev/gamedb/</link>
		<description>Recent content on Walnut Games</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<atom:link href="https://walnut.nanobyte.dev/gamedb/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>32 MB in a random number generator (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/prng-table/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/prng-table/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/MEMORY.md (&amp;ldquo;Findings in the games&amp;rsquo; code&amp;rdquo;, &amp;ldquo;Cuts, ranked&amp;rdquo; row 1 and the&#xA;packages table), where the cross-game memory picture stays.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The MEM=1 batch of 2026-10-18 (00:40-01:40 UTC, Mesa ps3.299, one run per game) had Yamagi Quake II at&#xA;77 MB of Rss + 3.4 MB swapped, with 42.1 MB of anonymous memory (the most of the ten games) and a&#xA;23 MB .bss in the client, 18 MB of it resident.&lt;/p&gt;</description>
			</item>
			<item>
				<title>About the ratings</title>
				<link>https://walnut.nanobyte.dev/gamedb/about/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/about/</guid>
				<description>How Walnut Games tests a game on the PS3 and turns the measurements into a medal.</description>
			</item>
			<item>
				<title>An 8 MB staging buffer every frame (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/staging-buffer-per-frame/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/staging-buffer-per-frame/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/HOTPATHS.md (&amp;ldquo;OpenTTD: an 8 MB staging buffer every frame&amp;rdquo; and the&#xA;OpenTTD rows of the SSD-root profiles). The driver side, what a soft-masked sample is and the three&#xA;switches built against it (Mesa 0040 &lt;code&gt;NV30_STAGING_POOL_MB&lt;/code&gt;, kernel local/0046&#xA;&lt;code&gt;ps3_htab.insert_readback&lt;/code&gt;, ps3rsx &lt;code&gt;clear_dcbz&lt;/code&gt;), stays in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/HOTPATHS.md#soft-masked-time-and-the-staging-buffer-per-frame&#34;&gt;docs/HOTPATHS.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The gameplay profile of batch ssdroot2 P1b (2026-10-19, kernel .472, Mesa ps3.476, OpenTTD&amp;rsquo;s OpenGL&#xA;driver, 18 fps; the webcam showed the title screen with its menu open, so it is the title screen&amp;rsquo;s&#xA;redraw and music, not play) spent 49.5% of OpenTTD&amp;rsquo;s samples in the kernel, 37.6% of them booked as&#xA;&lt;code&gt;__replay_soft_interrupts&lt;/code&gt; (time with interrupts soft-masked), against 1.7-5.7% in the six other games&#xA;profiled. Mesa&amp;rsquo;s own share was 1.1%, but its GL API entry hot path was 33.2% (&lt;code&gt;_mesa_memcpy_texture&lt;/code&gt;, the&#xA;CPU copy of its PBO upload) and buffer allocation and free 17.0%.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Armagetron Advanced</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/</guid>
				<description>A 3D Tron light cycle game: leave a wall behind you and make the others crash into it.</description>
			</item>
			<item>
				<title>Armagetron Advanced: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Armagetron Advanced: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Armagetron Advanced: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/technical/</guid>
				<description>&lt;p&gt;Armagetron Advanced 0.2.9.3 is Debian&amp;rsquo;s package with two patches of ours (fullscreen at the desktop&amp;rsquo;s&#xA;resolution by default, a fixed game-controller scheme) and runs with the right picture and sound. Live AI&#xA;rounds play at 83 steady fps in the benchmark; its played session (2026-10-25) had a 104 fps median, quit&#xA;cleanly and was fully playable with the pad.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-and-patches&#34;&gt;Packages and patches&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;armagetronad&lt;/code&gt;, &lt;code&gt;armagetronad-common&lt;/code&gt; (Debian&amp;rsquo;s 0.2.9.3.0-1 with our patches,&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/armagetronad/packages/armagetronad&#34;&gt;packages/armagetronad&lt;/a&gt;). Its textures are RGBA8, and the big-endian risk (GL_RGBA or&#xA;GL_BGRA picked from the SDL surface&amp;rsquo;s red mask) didn&amp;rsquo;t bite.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Armagetron Advanced: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Armagetron: Mesa ps3.262&#39;s -13%, the lost CPU/GPU overlap (2026-10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/armagetronad/investigations/submission-overlap/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/armagetronad/investigations/submission-overlap/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; Mesa ps3.262 (0019-0025, fewer words per draw) sped up every game of the suite by 11-24%,&#xA;except Armagetron: its playback went from 60 fps HUD median on ps3.246 (59 and 61 in the same boot,&#xA;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-246-control&#34;&gt;batch 2026-10-17-mesa-246-control&lt;/a&gt;) to 52.5 (-13%, &lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-262&#34;&gt;batch 2026-10-17-mesa-262&lt;/a&gt;), and 50 on&#xA;ps3.282.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; Not 0020&amp;rsquo;s texture invalidation: &lt;code&gt;texinv&lt;/code&gt; gave 52 (&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-262-repeats&#34;&gt;batch 2026-10-17-mesa-262-repeats&lt;/a&gt;).&#xA;On ps3.282 (&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-282-armagetron&#34;&gt;batch 2026-10-17-mesa-282-armagetron&lt;/a&gt;) the switches told: with relocations back on, or a&#xA;fixed kick every 50 or 100 draws (&lt;code&gt;kick50&lt;/code&gt;, &lt;code&gt;kick100&lt;/code&gt;), it was 60.5 again. In the first profile (Mesa&#xA;ps3.223) &amp;ldquo;other kernel&amp;rdquo; was 21% of its CPU.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BananaBread</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/</guid>
				<description>A first person shooter on the Cube 2 engine, with bots and an in-game map editor: the BananaBread content in Debian&amp;rsquo;s cube2-data.</description>
			</item>
			<item>
				<title>BananaBread: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>BananaBread: OOM-killed, then the first memory patches (2026-10-16 to 10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/investigations/oom-and-the-memory-patches/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/investigations/oom-and-the-memory-patches/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The research of 2026-10-16 found that the Cube 2 engine (and Red Eclipse) turns texture&#xA;compression off on Mesa: a one-line patch would make it a third S3TC game. On 2026-10-17 the game was&#xA;OOM-killed while loading cave without the VRAM swap (smoke&amp;rsquo;s default). With the swap it ran, holding&#xA;138 MB of VRAM and filling the swap. The first run with CPU skinning gave a 15 fps HUD median, including&#xA;a load of over 60 s. GPU skinning ran without a wedge, but at 11 fps and badly stuttering.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BananaBread: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>BananaBread: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/technical/</guid>
				<description>&lt;p&gt;BananaBread is Debian&amp;rsquo;s &lt;code&gt;cube2&lt;/code&gt;, which is Sauerbraten&amp;rsquo;s engine, playing Debian&amp;rsquo;s &lt;code&gt;cube2-data&lt;/code&gt; (the&#xA;BananaBread content, 20 maps) completed by our licensed &lt;code&gt;sauerbraten-nonfree-data&lt;/code&gt;. It runs on our&#xA;&lt;a href=&#34;../../../engines/cube2/&#34;&gt;Cube 2 build&lt;/a&gt; with all its patches. The user&amp;rsquo;s recorded demo plays at&#xA;39.1 steady fps on the SSD root with 0.05 s of gameplay stalls, and at 45.1 with the world normals sent&#xA;as shorts (cube2 0011, +17%, not the default yet). It is the suite&amp;rsquo;s heaviest GLSL game: 117 MB of VRAM&#xA;and about 20-25 MB of RAM free at the lowest. Its played session (the &amp;ldquo;Cube2:Demo&amp;rdquo; launcher,&#xA;2026-10-24) had a 20 fps median and 22 s of stutter a minute.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BananaBread: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bananabread/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bananabread/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Beneath a Steel Sky</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/</guid>
				<description>Revolution Software&amp;rsquo;s 1994 cyberpunk adventure: Robert Foster and his robot Joey find out who runs the city that kidnapped him. The CD version with speech, free to download.</description>
			</item>
			<item>
				<title>Beneath a Steel Sky: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Beneath a Steel Sky: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: nobody has played a session of it on Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;First run 2026-10-19 (batch 2026-10-19-ssdroot3-smoke-new, ScummVM 2026.1.0): the intro, the&#xA;sound running (20 underruns; the mic heard it 12 dB over the room), 85 MB peak RSS. Escape never reached&#xA;the window then (the recipe&amp;rsquo;s keys missed SDL&amp;rsquo;s window names until 2026-10-28), so the run stayed in the&#xA;intro. Not run since: its package wasn&amp;rsquo;t installed in the 2026-10-29 runs. The package is the CD version&#xA;with speech, all its languages in &lt;code&gt;sky.dsk&lt;/code&gt;; the launcher plays the English one.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Beneath a Steel Sky: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/beneath-a-steel-sky/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>BomberClone</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bomberclone/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bomberclone/</guid>
				<description>A Bomberman clone: blow up walls and the other players with bombs, alone against bots or with friends.</description>
			</item>
			<item>
				<title>BomberClone: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bomberclone/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bomberclone/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>BomberClone: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bomberclone/test-runs/2026-10-26-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bomberclone/test-runs/2026-10-26-session/</guid>
				<description></description>
			</item>
			<item>
				<title>BomberClone: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bomberclone/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bomberclone/technical/</guid>
				<description>&lt;p&gt;BomberClone 0.11.9, an Atomic Bomberman clone (SDL 1.2 on sdl12-compat, up to 8 local or network players),&#xA;is Debian&amp;rsquo;s 0.11.9-9 with two patches of ours. Its played session (2026-10-26, about 5 minutes against bots)&#xA;had a 50 fps median, no crash, the picture right (4:3 with bars at the sides) and the sound effects and music&#xA;heard; the gamepad works in matches but not in the menus.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-and-patches&#34;&gt;Packages and patches&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;bomberclone&lt;/code&gt;, &lt;code&gt;bomberclone-data&lt;/code&gt; (&lt;code&gt;0.11.9-9+ps3.N&lt;/code&gt;, &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/bomberclone/packages/bomberclone&#34;&gt;packages/bomberclone&lt;/a&gt;),&#xA;replacing Debian&amp;rsquo;s; in no suite.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BomberClone: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bomberclone/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bomberclone/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Bring your own games</title>
				<link>https://walnut.nanobyte.dev/gamedb/your-games/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/your-games/</guid>
				<description>How Walnut Games turns your own CD, disc image, GOG installer or Steam folder into an installed game on the PS3, and which copies work.</description>
			</item>
			<item>
				<title>BZFlag</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/</guid>
				<description>A 3D tank battle game: drive and shoot across online servers or against computer tanks.</description>
			</item>
			<item>
				<title>BZFlag: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>BZFlag: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/2026-10-29-session-2042/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/2026-10-29-session-2042/</guid>
				<description></description>
			</item>
			<item>
				<title>BZFlag: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>BZFlag: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;bzflag-client&lt;/code&gt;, &lt;code&gt;bzflag-data&lt;/code&gt; and &lt;code&gt;bzflag-server&lt;/code&gt; 2.4.30-4 from debian-ports, unchanged (about 20 MB&#xA;installed). It runs: smoke run on 2026-10-28 (kernel .874, Mesa ps3.924; runs&#xA;&lt;code&gt;ps3-bench-20261028T194448Z&lt;/code&gt; and &lt;code&gt;T194805Z&lt;/code&gt;): the client joins a bzfs on the console with three robot tanks,&#xA;fullscreen at 1920x1080 (&lt;code&gt;geom=1920x1080+0+0 fs=1&lt;/code&gt;), the robots fight each other, our tank spawns on &lt;code&gt;i&lt;/code&gt; and&#xA;drives. The Gallium HUD over the 90 s window: 59 fps steady, 1% low 30, one frame over 100 ms (243 ms, the&#xA;screenshot&amp;rsquo;s capture), 136% CPU (client, robots and server together), 65 MB RSS, 48 MB of VRAM, 23 MB of&#xA;GART. Sound ran (&lt;code&gt;RUNNING&lt;/code&gt;, 18 dropouts logged, 1 audible). Not checked yet: the sound by ear, the pad, a long&#xA;match.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BZFlag: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/bzflag/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Chromium B.S.U.</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/</guid>
				<description>A fast vertical arcade shooter: fly a lone ship against waves of enemies and keep the supply ships alive.</description>
			</item>
			<item>
				<title>Chromium B.S.U.: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Chromium B.S.U.: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Chromium B.S.U.: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s Chromium B.S.U. 0.9.16.1 (&lt;code&gt;chromium-bsu&lt;/code&gt;, &lt;code&gt;-data&lt;/code&gt;, 1 MB) runs. Smoke runs on 2026-10-28 (kernel .874, Mesa&#xA;ps3.924; the last one &lt;code&gt;ps3-bench-20261028T201110Z&lt;/code&gt;): Return on &amp;ldquo;new game&amp;rdquo; and a few shots and moves through XTEST&#xA;(the recipe&amp;rsquo;s &lt;code&gt;during()&lt;/code&gt;; the first runs never got their keys: xkeys.py looked windows up with XFetchName, which&#xA;misses sdl2-compat&amp;rsquo;s UTF-8 window names, fixed the same night), then the level plays: 55 fps steady on the Gallium&#xA;HUD (the game&amp;rsquo;s own counter says 53), 1% low 42, one frame over 100 ms (the capture), 37% CPU, 48 MB RSS, 31 MB of&#xA;VRAM; sound running, no dropouts logged. The webcam shows the same picture as the capture.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chromium B.S.U.: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/chromium-bsu/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Content: campaign</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/campaign/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/campaign/</guid>
				<description></description>
			</item>
			<item>
				<title>Content: map editor</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/map-editor/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/map-editor/</guid>
				<description></description>
			</item>
			<item>
				<title>Content: mods</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/mods/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/mods/</guid>
				<description></description>
			</item>
			<item>
				<title>Content: skirmish</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/skirmish/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/skirmish/</guid>
				<description></description>
			</item>
			<item>
				<title>Cube 2</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/cube2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/cube2/</guid>
				<description>&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;cube2&lt;/code&gt; source with our patches: &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/cube2/packages/cube2&#34;&gt;its package&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;technical-notes&#34;&gt;Technical notes&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;cube2&lt;/code&gt; (&lt;code&gt;0.0.20201229+dfsg-1+ps3.N&lt;/code&gt;, &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/cube2/packages/cube2&#34;&gt;packages/cube2&lt;/a&gt;) is Sauerbraten&amp;rsquo;s own&#xA;engine source (svn at the 2020-12-29 release, minus the bundled enet and the IDE files; the release&#xA;archive&amp;rsquo;s &lt;code&gt;src/&lt;/code&gt; differs from it in two files, &lt;code&gt;sound.cpp&lt;/code&gt; and &lt;code&gt;stream.cpp&lt;/code&gt;, where Debian&amp;rsquo;s has later&#xA;upstream fixes). Only Debian&amp;rsquo;s &lt;em&gt;data&lt;/em&gt;, &lt;code&gt;cube2-data&lt;/code&gt;, is BananaBread&amp;rsquo;s. So one engine build with one set of&#xA;patches runs both &lt;a href=&#34;../../games/bananabread/technical/&#34;&gt;BananaBread&lt;/a&gt; and&#xA;&lt;a href=&#34;../../games/sauerbraten/technical/&#34;&gt;Sauerbraten&lt;/a&gt;, and Red Eclipse&#xA;is the same engine family without our patches. The package replaces Debian&amp;rsquo;s; the release candidate is&#xA;ps3.354, ps3.442~dev added 0011.&lt;/p&gt;</description>
			</item>
			<item>
				<title>DarkPlaces</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/darkplaces/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/darkplaces/</guid>
				<description>&lt;p&gt;Debian buster&amp;rsquo;s DarkPlaces 0&lt;del&gt;20180412&lt;/del&gt;beta1 (the last with the GL 1.x/2.0 renderpaths) as &lt;code&gt;darkplaces-gl2&lt;/code&gt;: &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/darkplaces/packages/darkplaces-gl2&#34;&gt;its package&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;technical-notes&#34;&gt;Technical notes&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s DarkPlaces (0&lt;del&gt;20180908 and the 2026 git snapshot) has only GL 3.2 core and GLES2 renderpaths, so it&#xA;can&amp;rsquo;t run on the RSX. The last snapshot with the GL 1.1/1.3/2.0 renderpaths (&lt;code&gt;RENDERPATH_GL11/GL13/GL20&lt;/code&gt;, an&#xA;SDL2 window, &lt;code&gt;vid_gl20 0&lt;/code&gt; for the combiner path) is 0&lt;/del&gt;20180412~beta1, Debian buster&amp;rsquo;s orig tarball&#xA;(snapshot.debian.org, &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/engines/darkplaces/packages/darkplaces-gl2/upstream.mk&#34;&gt;upstream.mk&lt;/a&gt;). Our &lt;code&gt;darkplaces-gl2&lt;/code&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/darkplaces/packages/darkplaces-gl2&#34;&gt;its package&lt;/a&gt;, &lt;code&gt;TYPE=upstream&lt;/code&gt;,&#xA;&lt;code&gt;make darkplaces-gl2-deb&lt;/code&gt;, 2 MB) builds it with Debian&amp;rsquo;s 13 patches (link options, no SSE rasterizer off x86,&#xA;GPU skinning off) and &lt;code&gt;-std=gnu17&lt;/code&gt; (the code uses &lt;code&gt;false&lt;/code&gt;/&lt;code&gt;true&lt;/code&gt; as enum names; gcc 15 defaults to C23). It&#xA;installs &lt;code&gt;/usr/games/darkplaces-gl2&lt;/code&gt; beside Debian&amp;rsquo;s engine and &lt;code&gt;/usr/games/nexuiz-gl2&lt;/code&gt;. The one game on it is&#xA;Nexuiz Classic; built, not yet installed on the PS3.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Day of the Tentacle</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/</guid>
				<description>LucasArts&amp;rsquo; 1993 time-travel comedy: Bernard, Hoagie and Laverne pass things to each other across three centuries to stop Purple Tentacle. Played with ScummVM from your own copy.</description>
			</item>
			<item>
				<title>Day of the Tentacle: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Day of the Tentacle: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: published so that Walnut Games can set up its data; nobody has played a session of it on&#xA;Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-28 (&lt;code&gt;ps3-bench-20261028T224303Z-smoke-scummvm-dott&lt;/code&gt;, ScummVM 2026.4.0, recipe&#xA;scummvm variant &lt;code&gt;dott&lt;/code&gt;, from &lt;code&gt;~/Games/scummvm/DOTT&lt;/code&gt;): Escape twice skipped&#xA;the intro, then Bernard in the hotel lobby with the verbs and the inventory, colours right, fullscreen with&#xA;the 4:3 picture between bars; 90 MB peak RSS, the sound running with no audible dropouts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Day of the Tentacle: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/day-of-the-tentacle/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Diablo (DevilutionX)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/diablo/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/diablo/</guid>
				<description>A dark fantasy action RPG: descend through the dungeon beneath Tristram, kill monsters and collect loot (needs your own game files).</description>
			</item>
			<item>
				<title>Diablo (DevilutionX): guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/diablo/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/diablo/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Diablo (DevilutionX): session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/diablo/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/diablo/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Diablo (DevilutionX): technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/diablo/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/diablo/technical/</guid>
				<description>&lt;p&gt;Also known as: DevilutionX (the engine); Hellfire (the expansion, also played by DevilutionX).&lt;/p&gt;&#xA;&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;DevilutionX 1.5.5 built by us (&lt;code&gt;devilutionx&lt;/code&gt; &lt;code&gt;1.5.5-1+ps3.N&lt;/code&gt;, built from&#xA;&lt;code&gt;gamedb/games/diablo/packages/devilutionx/&lt;/code&gt;: DevilutionX is under the Sustainable Use License 1.0, non-commercial&#xA;and not DFSG-free; the user accepted that on 2026-10-29 (&amp;ldquo;I&amp;rsquo;m not using it commercially&amp;rdquo;), so it is public in the&#xA;testing suite, marked non-free in its description, README.Debian and the GameDB page, Section still &lt;code&gt;games&lt;/code&gt;). Two patches:&#xA;0001 opens the audio device in the host byte order (&lt;code&gt;AUDIO_S16SYS&lt;/code&gt;; &lt;code&gt;AUDIO_S16&lt;/code&gt; is little-endian, so the PPE&#xA;swapped every sample twice); 0002 fixes the see-through mouse cursor (below). Upstream&amp;rsquo;s defaults are already&#xA;console-like: fullscreen at the screen&amp;rsquo;s mode (&lt;code&gt;SDL_WINDOW_FULLSCREEN_DESKTOP&lt;/code&gt;, the picture widened to 16:9 and&#xA;scaled up), SDL game controllers on. The package links game-data-packager&amp;rsquo;s &lt;code&gt;diablo-data&lt;/code&gt; files&#xA;(&lt;code&gt;/usr/share/games/diablo/DIABDAT.MPQ&lt;/code&gt;, Hellfire&amp;rsquo;s &lt;code&gt;hellfire.mpq&lt;/code&gt;, &lt;code&gt;hfmonk.mpq&lt;/code&gt;, &lt;code&gt;hfmusic.mpq&lt;/code&gt;, &lt;code&gt;hfvoice.mpq&lt;/code&gt;)&#xA;into &lt;code&gt;/usr/share/diasurgical/devilutionx/&lt;/code&gt;, a folder DevilutionX searches (it never looks in /usr/share/games).&#xA;The player&amp;rsquo;s 1.09 DIABDAT.MPQ (517,501,242 bytes) is not the GOG file GDP knew (517,501,282); gdp patch 0019&#xA;accepts both for &lt;code&gt;diablo-data&lt;/code&gt; (tags &lt;code&gt;?gog&lt;/code&gt; and &lt;code&gt;?1.09&lt;/code&gt;). Proven on the PC (2026-10-30): &lt;code&gt;game-data-packager diablo -p diablo-data&lt;/code&gt; on a folder with the file builds the deb, and the helper&amp;rsquo;s manifest check takes its data&#xA;stream (release 1.09); the import itself on the PS3 is in TESTS.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Diablo (DevilutionX): test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/diablo/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/diablo/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Doom</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom/</guid>
				<description>id Software&amp;rsquo;s 1993 first person shooter, The Ultimate Doom&amp;rsquo;s four episodes, played with DSDA-Doom from your own copy.</description>
			</item>
			<item>
				<title>Doom II: Hell on Earth</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom2/</guid>
				<description>id Software&amp;rsquo;s 1994 sequel to Doom, its 32 levels played with DSDA-Doom from your own copy.</description>
			</item>
			<item>
				<title>Doom II: Hell on Earth: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom2/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom2/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Doom II: Hell on Earth: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom2/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom2/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested on the PS3: published so that Walnut Games can set up its data; nobody has played it on Walnut&#xA;yet. Its launchers start DSDA-Doom 0.30.0 (Debian&amp;rsquo;s package with Walnut&amp;rsquo;s patches, &lt;a href=&#34;../../dsda-doom/technical/&#34;&gt;dsda-doom&lt;/a&gt;), which plays&#xA;Freedoom 2 at about 56 fps on its OpenGL renderer.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;doom2-wad&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;), made from the&#xA;player&amp;rsquo;s own copy; the WADs go to &lt;code&gt;/usr/share/games/doom/&lt;/code&gt;, where Freedoom&amp;rsquo;s are.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launchers&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/doom2/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), one per IWAD, &lt;code&gt;NoDisplay=true&lt;/code&gt; with&#xA;&lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the WAD (shown once the menu rule for it exists, PLAN 5.10):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;dsda-doom -iwad /usr/share/games/doom/doom2.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Doom II: Hell on Earth: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom2/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom2/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Doom: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Doom: session of 2026-11-02</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom/test-runs/2026-11-02-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom/test-runs/2026-11-02-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Doom: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Played once on the PS3 (2026-11-02, 936 s of play from The Ultimate Doom&amp;rsquo;s DOOM.WAD: median 59 fps, 1% low 40,&#xA;no crash, no audible dropouts, nothing wrong in the picture; Platinum 95, provisional under an hour of play). Its launchers start DSDA-Doom 0.30.0 (Debian&amp;rsquo;s package with Walnut&amp;rsquo;s patches, &lt;a href=&#34;../../dsda-doom/technical/&#34;&gt;dsda-doom&lt;/a&gt;), which also plays&#xA;Freedoom 2 at about 56 fps on its OpenGL renderer.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;doom-wad&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;), made from the&#xA;player&amp;rsquo;s own copy; the WADs go to &lt;code&gt;/usr/share/games/doom/&lt;/code&gt;, where Freedoom&amp;rsquo;s are.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launchers&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/doom/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), one per IWAD, &lt;code&gt;NoDisplay=true&lt;/code&gt; with&#xA;&lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the WAD (shown once the menu rule for it exists, PLAN 5.10):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;dsda-doom -iwad /usr/share/games/doom/doom.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Doom: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/doom/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/doom/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Drascula: The Vampire Strikes Back</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/drascula/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/drascula/</guid>
				<description>Alcachofa Soft&amp;rsquo;s 1996 comedy adventure: John Hacker goes into Transylvania after Count Drascula, who has kidnapped B.J. Free to download, with the CD&amp;rsquo;s music.</description>
			</item>
			<item>
				<title>Drascula: The Vampire Strikes Back: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/drascula/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/drascula/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Drascula: The Vampire Strikes Back: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/drascula/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/drascula/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: nobody has played a session of it on Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-20 (&lt;code&gt;ps3-bench-20261020T093104Z-smoke-scummvm-drascula&lt;/code&gt;, ScummVM 2026.1.0, the data&#xA;package of then): &amp;ldquo;Couldn&amp;rsquo;t identify game &amp;lsquo;drascula&amp;rsquo; for the engine &amp;lsquo;drascula&amp;rsquo;&amp;rdquo;, so the game didn&amp;rsquo;t start.&#xA;On the PC (2026-10-30, a Debian container, ScummVM 2026.1.0 with &lt;code&gt;drascula&lt;/code&gt; 1.0+ds4-4) the menu entry&amp;rsquo;s&#xA;command says &amp;ldquo;Running Drascula: The Vampire Strikes Back (DOS/English)&amp;rdquo;: to be seen again on the PS3.&#xA;The music is&#xA;&lt;code&gt;drascula-music&lt;/code&gt;&amp;rsquo;s Ogg Vorbis tracks in &lt;code&gt;/usr/share/scummvm/drascula/audio/&lt;/code&gt;. The other languages are&#xA;packages of their own (&lt;code&gt;drascula-spanish&lt;/code&gt;, &amp;hellip;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Drascula: The Vampire Strikes Back: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/drascula/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/drascula/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>dsda-doom</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/</guid>
				<description>A Doom source port with an OpenGL renderer, accurate demo playback and many mod features.</description>
			</item>
			<item>
				<title>dsda-doom: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>dsda-doom: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/2026-10-25-session-0121/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/2026-10-25-session-0121/</guid>
				<description></description>
			</item>
			<item>
				<title>dsda-doom: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>dsda-doom: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/technical/</guid>
				<description>&lt;p&gt;dsda-doom 0.30.0 (the PrBoom+ successor, with the same GL renderer) plays Freedoom&amp;rsquo;s DEMO1 on its GL&#xA;renderer at 55.9 steady fps with no stalls, after big-endian and GL fixes of ours. Its OpenGL played&#xA;session (2026-10-25) had a 58 fps median and was smooth; the software launcher 44. What is left is the&#xA;MIDI music, which still chops: FluidSynth&amp;rsquo;s voice DSP on the SPEs halved the underruns, but hundreds a&#xA;minute remain.&lt;/p&gt;</description>
			</item>
			<item>
				<title>dsda-doom: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>dsda-doom: the MIDI music chops, and FluidSynth&#39;s voices on the SPEs (2026-10-17 onward)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/investigations/music-on-the-spes/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/investigations/music-on-the-spes/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; With the music on, dsda-doom&amp;rsquo;s sound chopped: 1095-1335 ALSA underruns in a 60 s &lt;code&gt;play&lt;/code&gt; run,&#xA;the music audibly breaking up.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; FluidSynth took 48% of dsda-doom&amp;rsquo;s CPU, about 40% of a PPE thread, interpolation alone 31%&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/SPU-AUDIO.md#results-on-the-ps3&#34;&gt;SPU-AUDIO.md, &amp;ldquo;Results on the PS3&amp;rdquo;&lt;/a&gt;). Earlier&#xA;sound-settings tries (&lt;a href=&#34;../../test-runs/#batch-2026-10-17-dsda-doom-sound&#34;&gt;batch 2026-10-17-dsda-doom-sound&lt;/a&gt;, Mesa ps3.225): &lt;code&gt;tuned&lt;/code&gt; 340 underruns and 46&#xA;s of CPU in one run, OPL 1312 in its first.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Run (&lt;code&gt;play&lt;/code&gt;, 60 s, GL)&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;CPU a minute&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Underruns&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Batch&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no music&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;about 29 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;18&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-fluidsynth-309&#34;&gt;batch 2026-10-17-fluidsynth-309&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;stock FluidSynth on the PPE&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;44.5-53 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1095-1335&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-fluidsynth-spu-dsp&#34;&gt;batch 2026-10-17-fluidsynth-spu-dsp&lt;/a&gt;, &lt;a href=&#34;../../test-runs/#batch-2026-10-17-speq-367-deadline-pool&#34;&gt;batch 2026-10-17-speq-367-deadline-pool&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;version 1 on the SPEs (libspeq 0.288)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;31.7 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1097&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-fluidsynth-spu-dsp&#34;&gt;batch 2026-10-17-fluidsynth-spu-dsp&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;version 2 (libfluidsynth3 +ps3.309, libspeq 0.318)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;31.8 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;588 and 709 (stock 1231 and 1331 the same session)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-fluidsynth-309&#34;&gt;batch 2026-10-17-fluidsynth-309&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;version 2 on the shared deadline pool (libspeq 0.367)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;26.5 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;465 (PPE 1095)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-speq-367-deadline-pool&#34;&gt;batch 2026-10-17-speq-367-deadline-pool&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;The user listened to version 2: &amp;ldquo;night and day, spu makes a huge difference&amp;rdquo;; the glitches that remain&#xA;line up with the game&amp;rsquo;s own frame stalls. The gameplay profile of 2026-10-19 still puts the synthesis at&#xA;about 30% of the samples. In the played sessions of 2026-10-25 the OpenGL launcher counted 7.5 audible&#xA;dropouts a minute (from 10322 underruns), the software launcher 35.9.&lt;/p&gt;</description>
			</item>
			<item>
				<title>dsda-doom: wrong colours, silent sound lumps, black GL textures (2026-10-16/17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/investigations/big-endian-and-gl-fixes/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/dsda-doom/investigations/big-endian-and-gl-fixes/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The first smoke at 1920x1080 in software ran at about 5 fps; at 960x540 the frame came out&#xA;in wrong colours, green-tinted through SDL&amp;rsquo;s GL renderer (&lt;a href=&#34;../../test-runs/#batch-2026-10-16-dsda-doom-software&#34;&gt;batch 2026-10-16-dsda-doom-software&lt;/a&gt;).&#xA;The engine&amp;rsquo;s own sound lumps didn&amp;rsquo;t play right, screenshots had the wrong byte order, and the GL renderer&#xA;drew walls, sprites and menus missing or black.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; Three big-endian assumptions and one missing GL feature:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;dsda-doom.wad&amp;rsquo;s DMX sound lumps are little-endian and were read in host order;&lt;/li&gt;&#xA;&lt;li&gt;the software renderer&amp;rsquo;s SDL buffer wasn&amp;rsquo;t in the texture&amp;rsquo;s own format, so the pixel words were read&#xA;with their bytes the wrong way round; screenshots likewise;&lt;/li&gt;&#xA;&lt;li&gt;the GL renderer uploads every indexed texture as GL_RG, and nv30 has no ARB_texture_rg.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fix.&lt;/strong&gt; 0001 reads the DMX lumps little-endian; 0003 puts the software renderer&amp;rsquo;s SDL buffer in the&#xA;texture&amp;rsquo;s own format (+ps3.231, &lt;a href=&#34;../../test-runs/#batch-2026-10-16-dsda-doom-colours&#34;&gt;batch 2026-10-16-dsda-doom-colours&lt;/a&gt;); 0004 writes screenshots as&#xA;RGB24; 0002 uploads the indexed textures as GL_LUMINANCE_ALPHA (+ps3.247: the GL renderer runs, 48.8 fps&#xA;on the GL timedemo, &lt;a href=&#34;../../test-runs/#batch-2026-10-17-dsda-doom-gl-music&#34;&gt;batch 2026-10-17-dsda-doom-gl-music&lt;/a&gt;). The software renderer then gave 33 fps&#xA;with the demo unfinished on Mesa ps3.246 and 38 finished on ps3.262.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Engine: Cube 2</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/cube2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/cube2/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: DSDA-Doom id Tech 1</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/dsda-doom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/dsda-doom/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: id Tech 1</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/idtech1/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/idtech1/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: id Tech 2</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/idtech2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/idtech2/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: id Tech 3</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/idtech3/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/idtech3/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: ioquake3 id Tech 3</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/ioquake3/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/ioquake3/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: QuakeSpasm id Tech 2</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/quakespasm/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/quakespasm/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: ScummVM</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/scummvm/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/scummvm/</guid>
				<description></description>
			</item>
			<item>
				<title>Engine: Yamagi Quake II id Tech 2</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/yquake2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/yquake2/</guid>
				<description></description>
			</item>
			<item>
				<title>Excluded games re-evaluated (research, 2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/game-reeval/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/game-reeval/</guid>
				<description>&lt;p&gt;The second pass over games first ruled out for reasons other than GL 3: RAM measured on the PC (amd64, Xvfb + llvmpipe, which adds about 100-200 MB), build and big-endian costs estimated. The first pass is build/tmp/newgames/RESEARCH.md, summarised in the games&amp;rsquo; technical notes (gamedb/games/&lt;!-- raw HTML omitted --&gt;/technical.md). Builds of DDNet, OpenTyrian, UQM and Hedgewars started the same night.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Where this lives now (2026-10-26).&lt;/strong&gt; This survey moved from docs/research to gamedb/research. Every game it names has a bundle in gamedb/games/ (a draft when it is only a candidate, &lt;code&gt;status&lt;/code&gt; and &lt;code&gt;status_note&lt;/code&gt; saying where it stands) whose technical.md cites this file by section. Part B (OpenRCT2&amp;rsquo;s big-endian port estimate) moved into the game&amp;rsquo;s investigations/. The per-game tables and blocks here are kept by hand for now; they become generated blocks (tools/gamedb/blocks.py) in a later step, and until then a game&amp;rsquo;s current state is its bundle&amp;rsquo;s, not this file&amp;rsquo;s.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Extreme Tux Racer</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/</guid>
				<description>A 3D downhill racing game in which Tux the penguin slides down snowy courses collecting herrings.</description>
			</item>
			<item>
				<title>Extreme Tux Racer: a 4 ms sound buffer (2026-10-24)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/investigations/sound-buffer/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/investigations/sound-buffer/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The played session of 2026-10-24 logged 608 xruns, 7.5 audible-dropout marks a minute, which&#xA;the player did not hear.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; ETR plays through SFML 3.1 (miniaudio), which opens the ALSA device with a 64-frame period and 3&#xA;periods: a 4 ms buffer, which the PPE misses whenever a frame runs long. ETR cannot change it: SFML does not&#xA;expose the setting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fix.&lt;/strong&gt; Our &lt;code&gt;libsfml&lt;/code&gt; (packages/patched/audio/libsfml/, 0001) opens it with a 1024-frame period: about 64&#xA;ms of buffer at 48 kHz, 24 KB, a sound effect or the music starting at most 23 ms late in the mix.&#xA;&lt;code&gt;SFML_AUDIO_PERIOD_FRAMES=&amp;lt;32..16384&amp;gt;&lt;/code&gt; overrides it (64 is upstream&amp;rsquo;s). It serves every SFML game. Not yet&#xA;tried on the PS3: the next played session should show the xrun count.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Extreme Tux Racer: game-side batching (2026-10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/investigations/game-side-batching/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/investigations/game-side-batching/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; After its first runs (&lt;a href=&#34;../../test-runs/#batch-2026-10-16-etr-armagetron-smokes&#34;&gt;batch 2026-10-16-etr-armagetron-smokes&lt;/a&gt;), ETR went from 46 fps&#xA;HUD on Mesa ps3.246 to 53 on ps3.262 (+15%) and 52 on ps3.299: just short of the 60 fps target, held back&#xA;by the PPE.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; A frame made 19,400 GL calls and 697 draws: texture binds repeated, the terrain walked and&#xA;drawn in immediate mode, Tux&amp;rsquo;s spheres rebuilt, every tree and item drawn on its own, each snow particle&#xA;its own draw.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Extreme Tux Racer: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Extreme Tux Racer: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Extreme Tux Racer: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/technical/</guid>
				<description>&lt;p&gt;Extreme Tux Racer 0.8.4 runs with the right picture and sound at about 59 fps in the benchmark, not a&#xA;vsync cap (59 uncapped too), after our patches cut a frame from 19,400 GL calls to 850. Its played session&#xA;(2026-10-24, with the controller patch) had a 58 fps median, the controller fully usable, and 608 sound&#xA;xruns the player didn&amp;rsquo;t hear, which the new SFML audio period is meant to remove.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Extreme Tux Racer: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/etr/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/etr/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Final Doom</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/final-doom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/final-doom/</guid>
				<description>Two 32-level Doom II episodes from 1996, TNT: Evilution and The Plutonia Experiment, played with DSDA-Doom from your own copy.</description>
			</item>
			<item>
				<title>Final Doom: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/final-doom/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/final-doom/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Final Doom: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/final-doom/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/final-doom/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested on the PS3: published so that Walnut Games can set up its data; nobody has played it on Walnut&#xA;yet. Its launchers start DSDA-Doom 0.30.0 (Debian&amp;rsquo;s package with Walnut&amp;rsquo;s patches, &lt;a href=&#34;../../dsda-doom/technical/&#34;&gt;dsda-doom&lt;/a&gt;), which plays&#xA;Freedoom 2 at about 56 fps on its OpenGL renderer.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;plutonia-wad&lt;/code&gt;, &lt;code&gt;tnt-wad&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;), made from the&#xA;player&amp;rsquo;s own copy; the WADs go to &lt;code&gt;/usr/share/games/doom/&lt;/code&gt;, where Freedoom&amp;rsquo;s are.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launchers&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/final-doom/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), one per IWAD, &lt;code&gt;NoDisplay=true&lt;/code&gt; with&#xA;&lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the WAD (shown once the menu rule for it exists, PLAN 5.10):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;dsda-doom -iwad /usr/share/games/doom/tnt.wad -file /usr/share/games/doom/tnt31.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;dsda-doom -iwad /usr/share/games/doom/plutonia.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Final Doom: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/final-doom/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/final-doom/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Flight of the Amazon Queen</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/</guid>
				<description>Pilot Joe King crash-lands in the Amazon with a film star on board and stumbles on a mad scientist&amp;rsquo;s plan; the 1995 adventure&amp;rsquo;s CD version with speech, free to download.</description>
			</item>
			<item>
				<title>Flight of the Amazon Queen: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Flight of the Amazon Queen: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: nobody has played a session of it on Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-20 (&lt;code&gt;ps3-bench-20261020T092844Z-smoke-scummvm-queen&lt;/code&gt;, ScummVM 2026.1.0): &amp;ldquo;Running&#xA;Flight of the Amazon Queen (CD/DOS/English)&amp;rdquo;, the sound running; no screenshots in that run. The package is&#xA;the CD version with speech (&lt;code&gt;queen.1c&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-is-set-up&#34;&gt;How it is set up&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: Debian&amp;rsquo;s &lt;code&gt;flight-of-the-amazon-queen&lt;/code&gt;, installed with ScummVM by Walnut Games, in &lt;code&gt;/usr/share/scummvm/flight-of-the-amazon-queen&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launcher&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/flight-of-the-amazon-queen/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;): &lt;code&gt;scummvm -c ~/.config/scummvm/walnut/queen.ini -i /usr/share/ps3-games/scummvm/queen.ini -p /usr/share/scummvm/flight-of-the-amazon-queen queen&lt;/code&gt; through ps3-game, shown once the data&#xA;is installed (&lt;code&gt;X-Walnut-Requires=&lt;/code&gt;); the package&amp;rsquo;s own menu entry is diverted&#xA;(&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&amp;rsquo;s notes&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: the initial config &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/flight-of-the-amazon-queen/desktop/files/usr/share/ps3-games/scummvm/queen.ini&#34;&gt;queen.ini&lt;/a&gt;; the&#xA;player&amp;rsquo;s settings then live in &lt;code&gt;~/.config/scummvm/walnut/queen.ini&lt;/code&gt;, the saves in&#xA;&lt;code&gt;~/.local/share/scummvm/saves/queen.s*&lt;/code&gt; (set aside by a played session: &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/flight-of-the-amazon-queen/rating/test.toml&#34;&gt;rating/test.toml&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Flight of the Amazon Queen: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/flight-of-the-amazon-queen/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Freed map blocks kept in malloc&#39;s arenas (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/malloc-trim/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/malloc-trim/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/MEMORY.md (&amp;ldquo;Growth over the window&amp;rdquo;, &amp;ldquo;Malloc arenas&amp;rdquo;, &amp;ldquo;Findings in the&#xA;games&amp;rsquo; code&amp;rdquo; and the Luanti rows of &amp;ldquo;Cuts, ranked&amp;rdquo;). The malloc presets and ps3-malloctrim.so, which&#xA;any game can use, stay in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/MEMORY.md#the-malloc-presets-and-ps3-malloctrim&#34;&gt;docs/MEMORY.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;In the MEM=1 batch of 2026-10-18 (00:40-01:40 UTC, Mesa ps3.299, one flight of three minutes) Luanti&#xA;was the biggest game: Rss 102 MB + 47.1 MB swapped, heap 74.5 MB resident (28.5 swapped), and 22.9 MB&#xA;free inside malloc&amp;rsquo;s arenas at the middle snapshot, in 14 arenas. Of the swap, 28.5 MB were heap, 11.0&#xA;anonymous, 3.6 libraries, 2.7 stacks (16 threads: 1.2 MB + 2.7 swapped), 1.2 Mesa.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Game candidates for the suite (research, 2026-10-16)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/game-candidates/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/game-candidates/</guid>
				<description>&lt;p&gt;This is the survey that picked the benchmark suite, done on 2026-10-16 before any of these games&#xA;ran on the PS3. Step 0 had rested on OpenArena alone, which misled us about VRAM and sound, and the&#xA;SPU offload and memory decisions needed 5-10 titles. Every pick has run since, and so have most&#xA;reserves: Yamagi Quake II, Extreme Tux Racer and Armagetron joined the suite, Teeworlds, SuperTux&#xA;and Red Eclipse were smoke-tested, TORCS waits for the user, and Nexuiz runs on our own older&#xA;DarkPlaces build. Current results are in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/games/README.md&#34;&gt;games/README.md&lt;/a&gt;; where this survey&#xA;and the measurements differ, the measurements win.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Garbage textures and a crash in Mesa after GART ran out (2026-10-26)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/fence-segfault/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/fence-segfault/</guid>
				<description>&lt;p&gt;The driver mechanism of the fix, Mesa 0049, is in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DRIVER.md#the-mesa-side&#34;&gt;docs/DRIVER.md&lt;/a&gt;. It follows the out-of-GART paths Mesa 0047&#xA;and 0048 closed for Sauerbraten (&lt;a href=&#34;../../../sauerbraten/investigations/online-crashes/&#34;&gt;online-crashes&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The first played session (2026-10-25, Scrap) ran at 7 fps on the old default graphics, and every&#xA;texture was garbage after a restart. The first rules-2.0 session (2026-10-26, package ps3.833, Mesa&#xA;ps3.827) ended in a crash on Ravenbridge Mansion, with a 21.7 s freeze in play before it, and objects&#xA;popping in and out on that track (the player, side by side with the PC); the last shot is black. The&#xA;segfault came while loading the track&amp;rsquo;s sky, after 414 &amp;ldquo;out of GART&amp;rdquo; lines in dmesg.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Genre: action</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/action/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/action/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: adventure</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/adventure/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/adventure/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: arcade</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/arcade/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/arcade/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: arena shooter</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/arena/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/arena/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: first-person shooter</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/fps/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/fps/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: management strategy</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/management/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/management/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: platformer</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/platformer/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/platformer/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: point-and-click adventure</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/point-and-click/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/point-and-click/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: puzzle</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/puzzle/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/puzzle/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: racing</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/racing/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/racing/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: real-time strategy</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/rts/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/rts/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: sandbox</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/sandbox/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/sandbox/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: shooter</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/shooter/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/shooter/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: simulation</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/simulation/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/simulation/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: sports</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/sports/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/sports/</guid>
				<description></description>
			</item>
			<item>
				<title>Genre: strategy</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/strategy/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/strategy/</guid>
				<description></description>
			</item>
			<item>
				<title>GL 3 census: open-source games that need GL 3&#43;, and what it takes to run them on the PS3 (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census/</guid>
				<description>&lt;p&gt;The question: which open-source games need GL 3+ (or GLES 3), and what would it cost to get each one&#xA;working on our RSX (Mesa nv30: GL 2.1, GLSL 1.20, GLES 2.0) with everything else that comes with it:&#xA;memory, CPU, big-endian ppc64, data. Less bling is fine; not working is not. Games new on the PS3&#xA;come first. Vulkan-only engines are out.&lt;/p&gt;&#xA;&lt;p&gt;The per-game detail is in the six parts next to this file, one section per game in a fixed&#xA;template, with file:line citations: &lt;a href=&#34;../gl3-census-a-space/&#34;&gt;A, space&lt;/a&gt;, &lt;a href=&#34;../gl3-census-b-2d/&#34;&gt;B, 2D and Java&lt;/a&gt;,&#xA;&lt;a href=&#34;../gl3-census-c-rts/&#34;&gt;C, RTS&lt;/a&gt;, &lt;a href=&#34;../gl3-census-d-fps/&#34;&gt;D, FPS&lt;/a&gt;,&#xA;&lt;a href=&#34;../gl3-census-e-idtech-doom-fs2/&#34;&gt;E, id Tech, Doom, FreeSpace&lt;/a&gt; and &lt;a href=&#34;../gl3-census-f-engines/&#34;&gt;F, engines and runtimes&lt;/a&gt;;&#xA;the driver-level analysis is &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/research/gl3-census/G-driver.md&#34;&gt;G-driver.md&lt;/a&gt; (it stays in&#xA;docs/research: it is about the driver, not a game). The brief the agents worked from was not kept.&#xA;This file is the cross-game view. Labels as in the parts: measured, read in source, estimate, UNVERIFIED.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Heretic</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heretic/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heretic/</guid>
				<description>Raven Software&amp;rsquo;s 1994 dark fantasy shooter on the Doom engine, Shadow of the Serpent Riders&amp;rsquo; five episodes, played with DSDA-Doom from your own copy.</description>
			</item>
			<item>
				<title>Heretic: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heretic/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heretic/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Heretic: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heretic/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heretic/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested on the PS3: published so that Walnut Games can set up its data; nobody has played it on Walnut&#xA;yet. Its launcher starts DSDA-Doom 0.30.0 (Debian&amp;rsquo;s package with Walnut&amp;rsquo;s patches, &lt;a href=&#34;../../dsda-doom/technical/&#34;&gt;dsda-doom&lt;/a&gt;),&#xA;which plays Heretic and Hexen too (started as &lt;code&gt;dsda-heretic&lt;/code&gt;, Debian&amp;rsquo;s link to it); it plays Freedoom 2 at about 56 fps&#xA;on its OpenGL renderer.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;heretic-wad&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;), made from the player&amp;rsquo;s own copy, in&#xA;&lt;code&gt;/usr/share/games/doom/heretic.wad&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launcher&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/heretic/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), &lt;code&gt;NoDisplay=true&lt;/code&gt; with &lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the&#xA;WAD (shown once the menu rule for it exists, PLAN 5.10):&#xA;&lt;code&gt;dsda-heretic -iwad /usr/share/games/doom/heretic.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;engine-options&#34;&gt;Engine options&lt;/h2&gt;&#xA;&lt;p&gt;DSDA-Doom is the one Walnut ships and patches; the research&amp;rsquo;s pick for vanilla exactness is Chocolate&#xA;Doom (a draft here). The options:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Heretic: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heretic/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heretic/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Heroes II: the mid-game &#34;hang&#34; was a message box waiting for OKAY (2026-11-02)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/investigations/mid-game-hang/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/investigations/mid-game-hang/</guid>
				<description>&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;On the PS3 (fheroes2 1.1.17+dfsg-1+ps3.1082, SDL2 through our sdl2-compat on SDL3 ps3.1090, Mesa&#xA;ps3.1219), the game stopped responding in the middle of a turn. The picture stayed the same for 3 s and&#xA;longer: the adventure map, the hero selected, a grey strip on the left of the map view. The process used&#xA;11-27% CPU and the GPU logged no error. A gdb backtrace was taken, then the game was killed with SIGABRT&#xA;for a core dump. The player said it had played fine until then.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Heroes of Might and Magic II (fheroes2)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/</guid>
				<description>The 1996 turn-based fantasy strategy game: lead heroes across the map, build castles and fight tactical battles, played with fheroes2 from your own copy.</description>
			</item>
			<item>
				<title>Heroes of Might and Magic II (fheroes2): guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Heroes of Might and Magic II (fheroes2): session of 2026-11-02</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/test-runs/2026-11-02-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/test-runs/2026-11-02-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Heroes of Might and Magic II (fheroes2): technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Our &lt;code&gt;fheroes2&lt;/code&gt; 1.1.17+dfsg-1+ps3.N (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/heroes-of-might-and-magic-2/packages/fheroes2&#34;&gt;packages/fheroes2&lt;/a&gt;): Debian&amp;rsquo;s contrib source built for&#xA;ppc64 unchanged (debian-ports builds nothing from contrib). Built on 2026-10-29. The&#xA;engine reads the player&amp;rsquo;s Heroes II data from &lt;code&gt;~/.local/share/fheroes2&lt;/code&gt; or &lt;code&gt;/usr/share/games/fheroes2&lt;/code&gt; (its&#xA;&lt;code&gt;DATA/&lt;/code&gt; and &lt;code&gt;MAPS/&lt;/code&gt; folders: HEROES2.AGG and the maps from the original game, GOG&amp;rsquo;s install or the demo).&lt;/p&gt;&#xA;&lt;p&gt;Smoke runs on 2026-10-29 (kernel .874, Mesa ps3.924, the VRAM swap on; the dev build installed by &lt;code&gt;dpkg -i&lt;/code&gt;) with&#xA;the player&amp;rsquo;s own Heroes of Might and Magic II Gold: &lt;code&gt;DATA/&lt;/code&gt; and &lt;code&gt;MAPS/&lt;/code&gt; (76 MB; &lt;code&gt;HEROES2.AGG&lt;/code&gt; sha256&#xA;&lt;code&gt;7a11c86d...04315d&lt;/code&gt;, &lt;code&gt;HEROES2X.AGG&lt;/code&gt; &lt;code&gt;1f3edad1...f4d41&lt;/code&gt;) in &lt;code&gt;~/.local/share/fheroes2&lt;/code&gt;. The recipe&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/heroes-of-might-and-magic-2/benchmark/recipe.sh&#34;&gt;benchmark/recipe.sh&lt;/a&gt;) writes a configuration with fullscreen 1920x1080, the first-run&#xA;dialogs and the intro off, then clicks by XTEST: New Game, Standard Game, Okay on the first map (&amp;ldquo;4&#xA;Dimensions&amp;rdquo;). The main menu (the 4:3 picture in the middle, the sides in the game&amp;rsquo;s own brown), the&#xA;scenario dialog and the adventure map at the full 1920x1080 (the map, the radar, the heroes and castles&#xA;panel, the day, the scenario&amp;rsquo;s story) are drawn right, colours included (&lt;code&gt;ps3-bench-20261029T022739Z-smoke-heroes-of-might-and-magic-2-base&lt;/code&gt;, xwd; webcam). 88 MB peak RSS,&#xA;sound running with 9 audible dropouts. The Gallium HUD&amp;rsquo;s few fps mean little: the game presents only when&#xA;something changes. Not checked: a turn, a battle, the pad.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Heroes of Might and Magic II (fheroes2): test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/heroes-of-might-and-magic-2/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Hexen: Beyond Heretic</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/hexen/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/hexen/</guid>
				<description>Raven Software&amp;rsquo;s 1995 sequel to Heretic, with three classes and hub levels, played with DSDA-Doom from your own copy.</description>
			</item>
			<item>
				<title>Hexen: Beyond Heretic: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/hexen/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/hexen/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;h3 id=&#34;which-copies-work&#34;&gt;Which copies work&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hexen: Beyond Heretic 1.1&lt;/strong&gt;: a CD, an installed copy (Steam: &lt;code&gt;common/Hexen&lt;/code&gt;) or GOG&amp;rsquo;s installer (&lt;code&gt;setup_hexen_beyond_heretic_1.1_(42801).exe&lt;/code&gt;, which has no Deathkings). Version 1.0 (the floppies and the first CD) does not run and is refused; Raven&amp;rsquo;s update to 1.1 isn&amp;rsquo;t applied for you yet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The Macintosh CD&amp;rsquo;s&lt;/strong&gt; &lt;code&gt;Hexen.WAD&lt;/code&gt; is taken as a 1.1 copy (tagged &lt;code&gt;mac&lt;/code&gt;): it is the same game with Macintosh fonts and menu art, but it has no GENMIDI instrument bank, so DSDA-Doom&amp;rsquo;s OPL music player is unavailable with it; our default player (fluidsynth) plays the same music lumps.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Deathkings of the Dark Citadel&lt;/strong&gt;, the expansion, is optional: &lt;code&gt;HEXDD.WAD&lt;/code&gt; from its CD or an installed copy (Steam: &lt;code&gt;common/Hexen Deathkings of the Dark Citadel&lt;/code&gt;). It gets its own entry in Play.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Hexen: Beyond Heretic: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/hexen/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/hexen/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Data import tested, play not: GOG&amp;rsquo;s installer imported on the PS3 (2026-10-27, 85 s) and DSDA-Doom reached&#xA;the title and played demo1 with the launcher&amp;rsquo;s arguments; nobody has played it on Walnut yet. Its launcher starts DSDA-Doom 0.30.0 (Debian&amp;rsquo;s package with Walnut&amp;rsquo;s patches, &lt;a href=&#34;../../dsda-doom/technical/&#34;&gt;dsda-doom&lt;/a&gt;),&#xA;which plays Heretic and Hexen too (started as &lt;code&gt;dsda-hexen&lt;/code&gt;, Debian&amp;rsquo;s link to it); it plays Freedoom 2 at about 56 fps&#xA;on its OpenGL renderer.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;hexen-wad&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;), made from the player&amp;rsquo;s own copy, in&#xA;&lt;code&gt;/usr/share/games/doom/hexen.wad&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launcher&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/hexen/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), &lt;code&gt;NoDisplay=true&lt;/code&gt; with &lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the&#xA;WAD (shown once the menu rule for it exists, PLAN 5.10):&#xA;&lt;code&gt;dsda-hexen -iwad /usr/share/games/doom/hexen.wad -vidmode gl -width 1920 -height 1080 -fullscreen&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Deathkings of the Dark Citadel&lt;/strong&gt;: gdp&amp;rsquo;s &lt;code&gt;hexen-deathkings-wad&lt;/code&gt; (HEXDD.WAD 1.0 or 1.1, in&#xA;&lt;code&gt;/usr/share/games/doom/hexdd.wad&lt;/code&gt;) is optional data (edition &lt;code&gt;expansion&lt;/code&gt;); its own launcher adds&#xA;&lt;code&gt;-file /usr/share/games/doom/hexdd.wad&lt;/code&gt; and needs that file. Not tried: none of the user&amp;rsquo;s copies has&#xA;HEXDD.WAD.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;which-copies-work&#34;&gt;Which copies work&lt;/h2&gt;&#xA;&lt;p&gt;game-data-packager wants HEXEN.WAD 1.1 (20083672 bytes, md5 abb033ca&amp;hellip;453f); DSDA-Doom 0.30 plays nothing&#xA;else.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hexen: Beyond Heretic: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/hexen/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/hexen/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Indiana Jones and the Fate of Atlantis</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/</guid>
				<description>LucasArts&amp;rsquo; 1992 Indiana Jones adventure: Indy and Sophia race the Nazis to Atlantis, with three different paths through the middle of the game. Played with ScummVM from your own copy.</description>
			</item>
			<item>
				<title>Indiana Jones and the Fate of Atlantis: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Indiana Jones and the Fate of Atlantis: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: published so that Walnut Games can set up its data; nobody has played a session of it on&#xA;Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-29 (&lt;code&gt;ps3-bench-20261029T051807Z-smoke-scummvm-atlantis&lt;/code&gt;, variant &lt;code&gt;atlantis&lt;/code&gt;): Indy in&#xA;the college&amp;rsquo;s store room with his first line, colours right. The run before it stopped at once with&#xA;&amp;ldquo;Unrecognized game &amp;lsquo;atlantis&amp;rsquo;&amp;rdquo;: the bare id matches another engine&amp;rsquo;s game too, so the recipe used&#xA;&lt;code&gt;--auto-detect&lt;/code&gt;; the menu entries name the target in their own config instead.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Indiana Jones and the Fate of Atlantis: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/indiana-jones-and-the-fate-of-atlantis/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Input: made for keyboard and mouse</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/keyboard-mouse/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/keyboard-mouse/</guid>
				<description></description>
			</item>
			<item>
				<title>Input: supports gamepad</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/gamepad/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/gamepad/</guid>
				<description></description>
			</item>
			<item>
				<title>ioquake3</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/ioquake3/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/ioquake3/</guid>
				<description>&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;ioquake3&lt;/code&gt; source with our patches: &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/ioquake3/packages/ioquake3&#34;&gt;its package&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;technical-notes&#34;&gt;Technical notes&lt;/h2&gt;&#xA;&lt;p&gt;Our build of Debian&amp;rsquo;s &lt;code&gt;ioquake3&lt;/code&gt; (&lt;code&gt;1.36+u20260719.58839361+dfsg-1+ps3.N&lt;/code&gt;,&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/engines/ioquake3/packages/ioquake3&#34;&gt;packages/ioquake3&lt;/a&gt;) replaces Debian&amp;rsquo;s and carries 30 patches (there is no 0017).&#xA;OpenArena runs on it (&lt;a href=&#34;../../games/openarena/technical/&#34;&gt;its notes&lt;/a&gt;), and Quake III Arena with the&#xA;player&amp;rsquo;s own data (&lt;a href=&#34;../../games/quake-3-arena/technical/&#34;&gt;its notes&lt;/a&gt;). Every change sits&#xA;behind a cvar, so a recipe variant can turn it back to upstream&amp;rsquo;s behaviour. The PS3 runs ps3.959~dev (0031) since&#xA;2026-10-28; the release candidate is ps3.396 (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/archive/RELEASE-CANDIDATES-2026-10-19.md&#34;&gt;the archived release plan&lt;/a&gt;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Keywords: ball</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/ball/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/ball/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: bike</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/bike/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/bike/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: bomberman</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/bomberman/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/bomberman/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: building</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/building/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/building/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: courses</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/courses/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/courses/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: downhill</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/downhill/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/downhill/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: kart</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/kart/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/kart/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: levels</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/levels/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/levels/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: penguin</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/penguin/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/penguin/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: physics</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/physics/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/physics/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: theme park</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/theme-park/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/theme-park/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: transport</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/transport/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/transport/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: tron</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/tron/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/tron/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: tycoon</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/tycoon/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/tycoon/</guid>
				<description></description>
			</item>
			<item>
				<title>Keywords: voxel</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/voxel/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/voxel/</guid>
				<description></description>
			</item>
			<item>
				<title>Loom</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/loom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/loom/</guid>
				<description>Lucasfilm Games&amp;rsquo; 1990 fantasy adventure: Bobbin Threadbare weaves spells as four-note drafts on his distaff. Played with ScummVM from your own copy.</description>
			</item>
			<item>
				<title>Loom: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/loom/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/loom/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Loom: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/loom/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/loom/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: published so that Walnut Games can set up its data; nobody has played a session of it on&#xA;Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-29 (&lt;code&gt;ps3-bench-20261029T051548Z-smoke-scummvm-loom&lt;/code&gt;, variant &lt;code&gt;loom&lt;/code&gt;): the difficulty&#xA;choice (Estándar, Práctica, Experto), drawn right.&lt;/p&gt;&#xA;&lt;p&gt;The player&amp;rsquo;s copy is the Spanish EGA release (ScummVM: &amp;ldquo;loom&amp;rdquo;, EGA, ES; &lt;code&gt;00.LFL&lt;/code&gt; md5&#xA;&lt;code&gt;2a208ffb...a6e1&lt;/code&gt;). Debian&amp;rsquo;s game-data-packager doesn&amp;rsquo;t know it; ours does (&lt;code&gt;loom-ega-es-data&lt;/code&gt;, patch&#xA;0017: 74 room files, 28 of them the other EGA releases&amp;rsquo; own). The VGA talkie (&lt;code&gt;loom-en-data&lt;/code&gt;) can&amp;rsquo;t be&#xA;imported yet: game-data-packager rips its music from the CD&amp;rsquo;s one audio track, which the import&amp;rsquo;s&#xA;manifest doesn&amp;rsquo;t describe (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/engines/scummvm/todo.toml&#34;&gt;the engine&amp;rsquo;s todo&lt;/a&gt;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Loom: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/loom/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/loom/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Luanti</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/</guid>
				<description>A voxel sandbox engine for building and exploring, with Minetest Game and thousands of mods.</description>
			</item>
			<item>
				<title>Luanti: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Luanti: LuaJIT&#39;s state allocated where it refuses it (2026-10-16/17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/luajit-state-allocation/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/luajit-state-allocation/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; Debian has no ppc64 Luanti (its control lists only LuaJIT architectures; s390x builds&#xA;5.15.2 and passes the unit tests, a 2025 ppc64 attempt at 5.10.0 aborted in TestSAO). Our build started,&#xA;but &lt;code&gt;luaL_newstate()&lt;/code&gt; failed about 40% of the time, and with it the game.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; Debian&amp;rsquo;s LuaJIT on ppc64 big-endian allocated its state between 2 and 4 GB, which LuaJIT itself&#xA;then refuses: it checks that the state lies in the low 2 GB.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Luanti: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Luanti: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Luanti: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/technical/</guid>
				<description>&lt;p&gt;Luanti 5.15.2 with LuaJIT and Minetest Game runs on our own build, since Debian builds none for ppc64.&#xA;At the package&amp;rsquo;s viewing range of 120 it flies the bench path at about 38 steady fps with 1-2 s of&#xA;stalls in the 135 s window (since luanti 0010 and 0011, 2026-10-29: before them 20 fps and 30-36 s);&#xA;at the recipe&amp;rsquo;s 60 at about 46 fps. It keeps only 11-15 MB of RAM free: the suite&amp;rsquo;s most memory-hungry&#xA;engine on the CPU side. Its played session (2026-10-24, before 0010 and 0011) had a 35 fps median with&#xA;25 s of stutter a minute and frames up to 4.3 s, as new map blocks were generated and meshed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Luanti: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Luanti: the memory variants, the interfered round and its clean repeat (2026-10-17/18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/memory-variants/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/memory-variants/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The first run (2026-10-17) gave 67 fps HUD median in flight but a p10 of 23 and stalls to 0&#xA;while chunks loaded, with 177 MB swapped out and 32 MB free. Twenty memory variants were built, one lever&#xA;each (&lt;code&gt;saved&lt;/code&gt;, &lt;code&gt;nopp&lt;/code&gt;, &lt;code&gt;mip&lt;/code&gt;, &lt;code&gt;chunk3&lt;/code&gt;, &lt;code&gt;srvunload&lt;/code&gt;, &lt;code&gt;active2&lt;/code&gt;, &lt;code&gt;gen3&lt;/code&gt;, &lt;code&gt;io&lt;/code&gt;, &lt;code&gt;cliunload&lt;/code&gt;, &lt;code&gt;leaves&lt;/code&gt;,&#xA;&lt;code&gt;tradeoff&lt;/code&gt;, &lt;code&gt;flatlight&lt;/code&gt;, &lt;code&gt;nominimap&lt;/code&gt;, &lt;code&gt;view40&lt;/code&gt;, &lt;code&gt;view90&lt;/code&gt;, &lt;code&gt;nomerge&lt;/code&gt;, &lt;code&gt;merge100&lt;/code&gt;, &lt;code&gt;meshdelay&lt;/code&gt;,&#xA;&lt;code&gt;meshchunk2&lt;/code&gt;, &lt;code&gt;noraycull&lt;/code&gt;, &lt;code&gt;malloc&lt;/code&gt;, &lt;code&gt;trim16&lt;/code&gt;, &lt;code&gt;trim64&lt;/code&gt;; the bundles &lt;code&gt;lean&lt;/code&gt; and &lt;code&gt;leaner&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; The round of &lt;a href=&#34;../../test-runs/#batch-2026-10-18-luanti-memory&#34;&gt;batch 2026-10-18-luanti-memory&lt;/a&gt; looked good: &lt;code&gt;cliunload&lt;/code&gt; 6.5 to 0.8 s of&#xA;stalls, &lt;code&gt;lean&lt;/code&gt; rendering less terrain. The interference retro-scan then found digs and clicks during&#xA;base, lean and tradeoff: somebody had played in those runs, so the cells were invalid&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/STALLS.md#interference&#34;&gt;STALLS.md, &amp;ldquo;Interference&amp;rdquo;&lt;/a&gt;). The clean re-runs&#xA;(&lt;a href=&#34;../../test-runs/#batch-2026-10-18-luanti-clean-reruns&#34;&gt;batch 2026-10-18-luanti-clean-reruns&lt;/a&gt;, kernel .433, the kicker) and the lean parts alone&#xA;(&lt;a href=&#34;../../test-runs/#batch-2026-10-18-batch16&#34;&gt;batch 2026-10-18-batch16&lt;/a&gt;) replaced them:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Luanti: the Settings menu and string.lower on ppc64 (2026-10-28)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/settings-menu-string-lower/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/settings-menu-string-lower/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The played session of 2026-10-24 noted &amp;ldquo;Options menu is broken&amp;rdquo;. Every click on the main&#xA;menu&amp;rsquo;s gear, and on Settings in the pause menu, logged to &lt;code&gt;~/.minetest/debug.txt&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ModError: Runtime error from mod &#39;&#39; in callback open_settings():&#xA;/usr/share/luanti/builtin/common/settings/dlg_settings.lua:139:&#xA;attempt to index field &#39;controls_touchscreen&#39; (a nil value)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;strong&gt;Narrowing it down.&lt;/strong&gt; &lt;code&gt;builtin/settingtypes.txt&lt;/code&gt; was installed and complete. The parser&#xA;(&lt;code&gt;settingtypes.lua&lt;/code&gt;) and the page builder (&lt;code&gt;load_settingtypes&lt;/code&gt; in &lt;code&gt;dlg_settings.lua&lt;/code&gt;), run on the PS3&#xA;through the system&amp;rsquo;s libluajit from a small ctypes harness with stubs for &lt;code&gt;core&lt;/code&gt;, gave 643 entries and 74&#xA;categories, Touchscreen among them, but the page ids came out as &lt;code&gt;Controls_Touchscreencontrols_touchscreen&lt;/code&gt;:&#xA;the original string followed by its lower-case copy. Then by itself:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Luanti: the stalls at viewing range 120 (2026-10-29)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/view120-stalls/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/view120-stalls/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; At the package&amp;rsquo;s viewing range of 120 (0009; the user&amp;rsquo;s floor, no lower) the bench flight&#xA;ran at 20 fps steady with 36 s of frames over 100 ms in its 135 s window, a 1% low of 4 fps and frames&#xA;up to 3.8 s (&lt;a href=&#34;../../test-runs/#batch-2026-10-29-luanti-view120&#34;&gt;batch 2026-10-29-luanti-view120&lt;/a&gt;). The stall recorder put two thirds of it on &lt;code&gt;cpu&lt;/code&gt;&#xA;(the main thread in state R) and a quarter on swapping from the VRAM swap.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lure of the Temptress</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/</guid>
				<description>Revolution Software&amp;rsquo;s first adventure (1992): Diermot escapes the dungeon and frees the town of Turnvale from the sorceress Selena, with characters who go about their own business. Free to download.</description>
			</item>
			<item>
				<title>Lure of the Temptress: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Lure of the Temptress: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: nobody has played a session of it on Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-20 (&lt;code&gt;ps3-bench-20261020T093324Z-smoke-scummvm-lure&lt;/code&gt;, ScummVM 2026.1.0): &amp;ldquo;Running Lure&#xA;of the Temptress (VGA/DOS/English)&amp;rdquo;, the sound running; no screenshots in that run. The package holds&#xA;the English, German, French, Italian and Spanish versions, each in its own folder; the launcher starts&#xA;the English one (Debian&amp;rsquo;s &lt;code&gt;lure&lt;/code&gt; wrapper picks by locale).&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-is-set-up&#34;&gt;How it is set up&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: Debian&amp;rsquo;s &lt;code&gt;lure-of-the-temptress&lt;/code&gt;, installed with ScummVM by Walnut Games, in &lt;code&gt;/usr/share/scummvm/lure-of-the-temptress/en&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launcher&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/lure-of-the-temptress/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;): &lt;code&gt;scummvm -c ~/.config/scummvm/walnut/lure.ini -i /usr/share/ps3-games/scummvm/lure.ini -p /usr/share/scummvm/lure-of-the-temptress/en lure&lt;/code&gt; through ps3-game, shown once the data&#xA;is installed (&lt;code&gt;X-Walnut-Requires=&lt;/code&gt;); the package&amp;rsquo;s own menu entry is diverted&#xA;(&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&amp;rsquo;s notes&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;: the initial config &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/lure-of-the-temptress/desktop/files/usr/share/ps3-games/scummvm/lure.ini&#34;&gt;lure.ini&lt;/a&gt;; the&#xA;player&amp;rsquo;s settings then live in &lt;code&gt;~/.config/scummvm/walnut/lure.ini&lt;/code&gt;, the saves in&#xA;&lt;code&gt;~/.local/share/scummvm/saves/lure.*&lt;/code&gt; (set aside by a played session: &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/lure-of-the-temptress/rating/test.toml&#34;&gt;rating/test.toml&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Lure of the Temptress: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/lure-of-the-temptress/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Monkey Island 2: LeChuck&#39;s Revenge</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/</guid>
				<description>The 1991 sequel: Guybrush hunts for the treasure of Big Whoop while the zombie pirate LeChuck hunts for him. Played with ScummVM from your own copy.</description>
			</item>
			<item>
				<title>Monkey Island 2: LeChuck&#39;s Revenge: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>Monkey Island 2: LeChuck&#39;s Revenge: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: published so that Walnut Games can set up its data; nobody has played a session of it on&#xA;Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-28 (&lt;code&gt;ps3-bench-20261028T224550Z-smoke-scummvm-monkey2&lt;/code&gt;, variant &lt;code&gt;monkey2&lt;/code&gt;): the game&amp;rsquo;s&#xA;copy-protection screen (the voodoo recipe wheel), drawn right; ScummVM doesn&amp;rsquo;t skip it for this release&#xA;(known issue), so the run went no further.&lt;/p&gt;&#xA;&lt;p&gt;The player&amp;rsquo;s copy is the Spanish floppy release (&lt;code&gt;MONKEY2.000&lt;/code&gt; sha256 &lt;code&gt;bdca6e56...88ac5&lt;/code&gt;, &lt;code&gt;MONKEY2.001&lt;/code&gt;&#xA;&lt;code&gt;f5cb9fc5...8b3&lt;/code&gt;), &lt;code&gt;monkey-island2-es-data&lt;/code&gt; in Debian&amp;rsquo;s game-data-packager 89 already.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Monkey Island 2: LeChuck&#39;s Revenge: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/monkey-island-2/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Mr.Boom</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/</guid>
				<description>A Bomberman clone for up to eight players: drop bombs, blow up the walls and your friends, last one standing wins.</description>
			</item>
			<item>
				<title>Mr.Boom: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Mr.Boom: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/2026-10-26-session-0314/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/2026-10-26-session-0314/</guid>
				<description></description>
			</item>
			<item>
				<title>Mr.Boom: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/2026-10-26-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/2026-10-26-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Mr.Boom: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/technical/</guid>
				<description>&lt;p&gt;Mr.Boom 5.5, a Bomberman clone for up to eight players (SDL2, pads first). Debian&amp;rsquo;s ppc64 binary crashed&#xA;within 15 s of every start on the PS3: both played sessions of 2026-10-26 ended in a segfault in the game&amp;rsquo;s&#xA;own code on the welcome screen (Scrap). The cause is a big-endian bug in the SDL2 build, now fixed in our&#xA;package; the fix passes every recorded demo under qemu, and the PS3 check is still to come.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mr.Boom: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Mr.Boom: the emulated 8086 registers in little-endian layout (2026-10-26)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/mrboom/investigations/big-endian-registers/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/mrboom/investigations/big-endian-registers/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; Debian&amp;rsquo;s ppc64 &lt;code&gt;mrboom&lt;/code&gt; 5.5+ds-1 segfaulted on the PS3 within 15 s of every start: two played&#xA;sessions, both on the welcome screen, after 13-14 s of play. dmesg: &lt;code&gt;mrboom: segfault (11) at 1835c88a1 ... in mrboom&lt;/code&gt;, a load (&lt;code&gt;lbzx&lt;/code&gt;) from an address far outside the program.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; The fault is in &lt;code&gt;program()&lt;/code&gt;, at an &lt;code&gt;LODSB&lt;/code&gt; in &lt;code&gt;aff_lettre&lt;/code&gt; (the font code), with ESI 0x481dd440.&#xA;Mr.Boom is the original DOS game translated from 8086 assembly to C: &lt;code&gt;program()&lt;/code&gt; runs the translated code on&#xA;emulated registers. ESI held a value no font offset could have.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Needs: free data download</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/free-download/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/free-download/</guid>
				<description></description>
			</item>
			<item>
				<title>Needs: low memory</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/low-memory/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/low-memory/</guid>
				<description></description>
			</item>
			<item>
				<title>Needs: your own game data</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/own-data/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/own-data/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverball</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/</guid>
				<description>Tilt the floor to roll a ball through 3D levels, collecting coins before the time runs out.</description>
			</item>
			<item>
				<title>Neverball: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverball: L8A8 swapped, 1-pixel mipmap levels, and graph exception 0x105 (2026-10-16)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/investigations/driver-bugs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/investigations/driver-bugs/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; Neverball was the first game to show three driver bugs in one day: its fonts and HUD drew with&#xA;wrong alpha, its non-square textures broke the GPU&amp;rsquo;s mipmap generation, and on Mesa ps3.223 it wedged the&#xA;RSX with a graph exception (&lt;a href=&#34;../../test-runs/#batch-2026-10-16-mesa-223-neverball-wedge&#34;&gt;batch 2026-10-16-mesa-223-neverball-wedge&lt;/a&gt;: &lt;code&gt;nouveau: kernel rejected pushbuf&lt;/code&gt;, 89 lines and 35 000 dump lines, &lt;code&gt;ps3rsx: graph exception&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence and cause.&lt;/strong&gt; Each was reduced to a test in ps3-gpu-tools&amp;rsquo; mesa-tests:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Neverball: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverball: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/technical/</guid>
				<description>&lt;p&gt;Neverball (Debian&amp;rsquo;s 2018 snapshot of 1.6, with Neverputt) runs with the right picture at about 66 fps in&#xA;the benchmark&amp;rsquo;s replay, and its played session (2026-10-24) had a 60 fps median (&amp;ldquo;played flawlessly&amp;rdquo;, the&#xA;player). It found three of the driver bugs on its way.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-and-patches&#34;&gt;Packages and patches&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;neverball&lt;/code&gt;, &lt;code&gt;neverputt&lt;/code&gt; and their data (&lt;code&gt;1.6.0+git20180603-3+ps3.N&lt;/code&gt;, &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/neverball/packages/neverball&#34;&gt;packages/neverball&lt;/a&gt;),&#xA;replacing Debian&amp;rsquo;s.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Patch&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;What&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Switch&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverball/packages/neverball/patches/0001-Benchmark-mode-NEVERBALL_BENCH-prints-the-frames-and.patch&#34;&gt;0001&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;bench mode: a replay prints its frames, seconds, fps and longest frame at its end and the game quits&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;NEVERBALL_BENCH=1&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverball/packages/neverball/patches/0002-Benchmark-mode-NEVERBALL_BENCH_LOOPS-N-plays-the-rep.patch&#34;&gt;0002&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;the replay played N times, one line per pass&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;NEVERBALL_BENCH_LOOPS=N&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverball/packages/neverball/patches/0003-Fewer-GL-calls-and-draws-a-frame-shared-mesh-buffers.patch&#34;&gt;0003&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;fewer GL calls and draws: one vertex and element buffer per solid file and one for the five item files, items drawn in a row, the background billboards transformed on the CPU and drawn per material run (76 to 13 draws), no depth toggles around empty passes, one texture unit where one is used&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;NEVERBALL_GL_MESH&lt;/code&gt;, &lt;code&gt;_ITEMS&lt;/code&gt;, &lt;code&gt;_BACK&lt;/code&gt;, &lt;code&gt;_STATE&lt;/code&gt;; &lt;code&gt;NEVERBALL_GL=0&lt;/code&gt; all off&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverball/packages/neverball/patches/0004-config-fullscreen-by-default-Walnut-is-a-console-on-.patch&#34;&gt;0004&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;fullscreen by default for Neverball and Neverputt (a fresh neverballrc started an 800x600 window; fullscreen takes the desktop&amp;rsquo;s mode); checked on the PS3 with Neverputt on 2026-10-29&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;the &lt;code&gt;fullscreen&lt;/code&gt; setting&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverball/packages/neverball/patches/0004-config-fullscreen-by-default-Walnut-is-a-console-on-.patch&#34;&gt;0004&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;fullscreen by default (a fresh &lt;code&gt;neverballrc&lt;/code&gt; started Neverball and Neverputt in an 800x600 window); fullscreen already takes the desktop&amp;rsquo;s mode (1920x1080 on the PS3); the Options menu and a saved &lt;code&gt;neverballrc&lt;/code&gt; still decide. Built 2026-10-28, pending its PS3 test&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;the Options menu&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;On llvmpipe at GL 2.1 with a fixed 33 ms clock, 0003 took &lt;code&gt;gui/demo1.nbr&lt;/code&gt; from 2154 to 844 calls and 137&#xA;to 74 draws a frame (demo2 2916 to 1285; the level intros greed 6289 to 1915 and mover 8205 to 2463;&#xA;Neverputt 565 to 431). Pixels are identical except BACK&amp;rsquo;s rounding at cloud edges (demo1: 163 pixels over 7&#xA;frames, 1 level, one pixel 11); all switches off is the old build&amp;rsquo;s exact call stream. VBOs and point&#xA;parameters are required with no fallback.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Neverball: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverball/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverball/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverputt</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverputt/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverputt/</guid>
				<description>A 3D mini golf game: putt a ball around imaginative courses in as few strokes as possible.</description>
			</item>
			<item>
				<title>Neverputt: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverputt/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverputt/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverputt: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverputt/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverputt/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Neverputt: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverputt/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverputt/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Our &lt;code&gt;neverputt&lt;/code&gt; and &lt;code&gt;neverputt-data&lt;/code&gt; from the neverball source package (&lt;a href=&#34;../../neverball/technical/&#34;&gt;Neverball&lt;/a&gt;&amp;rsquo;s packages,&#xA;&lt;code&gt;1.6.0+git20180603-3+ps3.N&lt;/code&gt;; dev build &lt;code&gt;ps3.931~dev&lt;/code&gt; installed with &lt;code&gt;dpkg -i&lt;/code&gt;, Neverball&amp;rsquo;s packages with it).&#xA;Smoke run on 2026-10-29 (kernel .874, Mesa ps3.924, the VRAM swap on; &lt;code&gt;ps3-bench-20261028T230058Z&lt;/code&gt;): without a&#xA;&lt;code&gt;~/.neverball/neverputtrc&lt;/code&gt; (the recipe sets the player&amp;rsquo;s aside and restores it), Return three times by XTEST&#xA;(Play, the first course, the first hole): hole 1 with the flag, the course, the score and par, fullscreen&#xA;1920x1080 from the package&amp;rsquo;s new default (neverball 0004). 129 fps steady on the Gallium HUD, 1% low 88, sound&#xA;running with 6 audible dropouts, 47 MB peak RSS. Not checked: a putt, the pad, the sound by ear. The recipe:&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/neverputt/benchmark/recipe.sh&#34;&gt;benchmark/recipe.sh&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Neverputt: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/neverputt/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/neverputt/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenArena</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/</guid>
				<description>A fast Quake III Arena style deathmatch shooter with bots, free data included.</description>
			</item>
			<item>
				<title>OpenArena opengl1: batching, and why the lightmap atlas went off (2026-10-17/18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl1-batching-and-the-atlas/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl1-batching-and-the-atlas/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; Game-side batching had tripled X-Moto, so the same was tried for OpenArena&amp;rsquo;s fixed-function&#xA;renderer: ioquake3 0019-0022 (the lightmap atlas &lt;code&gt;r_mergeLightmaps&lt;/code&gt;, a GL state cache, no&#xA;&lt;code&gt;glLockArraysEXT&lt;/code&gt; around batches, the sky from vertex arrays). On llvmpipe at GL 2.1 the bench demo went&#xA;from 3022 GL calls and 198 draws a frame to 377 and 79, with the pixels within 1-4 levels. On the RSX it&#xA;measured slower: steady 51.8 fps with all four on against 56.4 with all off&#xA;(&lt;a href=&#34;../../test-runs/#batch-2026-10-17-ioquake3-362-batching&#34;&gt;batch 2026-10-17-ioquake3-362-batching&lt;/a&gt;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenArena opengl2 (gl2min): the 16 s freezes and the memory (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl2-freezes/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl2-freezes/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/MEMORY.md (&amp;ldquo;OpenArena opengl2 (gl2min): the 16 s freezes and the&#xA;memory&amp;rdquo;). The patches are our ioquake3&amp;rsquo;s (renderer_opengl2); the driver side, nouveau&amp;rsquo;s system-memory&#xA;copies of VRAM buffers and Mesa 0037&amp;rsquo;s switches that limit them, stays in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/MEMORY.md#nouveaus-system-memory-copies-of-vram-buffers-mesa-0037&#34;&gt;docs/MEMORY.md&lt;/a&gt;.&#xA;Both causes are settled: since batch 17 gl2min runs at 57-60 steady fps with 1-2 s of gameplay stalls.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The profiled gl2min run of 2026-10-18 (&lt;code&gt;PERF=1 MEM=1&lt;/code&gt;, ioquake3 ps3.396, Mesa ps3.408~dev,&#xA;&lt;code&gt;build/bench/ps3-bench-20261018T080250Z-openarena-gl2min&lt;/code&gt;, in &lt;a href=&#34;../../test-runs/#batch-2026-10-18-batch8&#34;&gt;batch 2026-10-18-batch8&lt;/a&gt;) had 54.7 s of gameplay stalls, a 16148 ms&#xA;longest frame, 66.5 MB swapped and 117 MB of VRAM. Two causes, one in our report and one in memory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenArena opengl2: making the GLSL renderer fit in memory (2026-10-15 to 10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl2-fits-in-memory/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/opengl2-fits-in-memory/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; On 2026-10-15 the GLSL renderer was tried once and dropped: it &amp;ldquo;ran out of RAM compiling&#xA;its shaders&amp;rdquo; (commit 82b6b5f), before the VRAM swap and game mode existed. On 2026-10-17 it ran on nv30&#xA;(e708512: all 97 programs link), but compiled them twice at about 25 s each, and Debian&amp;rsquo;s build played&#xA;the bench demo at 10.7 fps (&lt;code&gt;gl2&lt;/code&gt;, Debian&amp;rsquo;s opengl2 defaults: 15.9).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; Where the memory went, from the hunk counters and Mesa&amp;rsquo;s allocations: Mesa kept every&#xA;shader&amp;rsquo;s source and IR after its program linked; 27 bone-animation programs indexed a 105-matrix array,&#xA;which nv30 (no indirect constant addressing) turns into compare trees; 15 shadow and post-processing&#xA;programs needed framebuffer objects gl2min never uses; a renderer restart at the map load compiled&#xA;everything again; the VAO cache held 21 MB that were never drawn from; and the renderer kept a CPU copy&#xA;of every MD3 vertex frame, about 87 MB of hunk for the demo&amp;rsquo;s models.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenArena: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenArena: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/2026-10-25-session-0050/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/2026-10-25-session-0050/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenArena: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenArena: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/technical/</guid>
				<description>&lt;p&gt;OpenArena 0.8.8 (Debian&amp;rsquo;s data) runs on our &lt;a href=&#34;../../../engines/ioquake3/&#34;&gt;ioquake3&lt;/a&gt; with both&#xA;of its renderers. The fixed-function &lt;code&gt;opengl1&lt;/code&gt; renderer is the suite&amp;rsquo;s baseline: 70.6 steady fps with&#xA;no gameplay stalls. The GLSL &lt;code&gt;opengl2&lt;/code&gt; renderer, in its lean &lt;code&gt;gl2min&lt;/code&gt; settings, reaches 56-60 fps with&#xA;0-2.4 s of gameplay stalls since ioquake3 0027 sends its vertex colours in a format nv30 fetches. In&#xA;played sessions the GL 2.0 launcher did better than GL 1.2 (54 against 43 fps median), so the game&amp;rsquo;s&#xA;medal comes from GL 2.0.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenArena: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenRCT2</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/</guid>
				<description>An open source re-implementation of RollerCoaster Tycoon 2: build a theme park, its rides and coasters, and keep the guests happy.</description>
			</item>
			<item>
				<title>OpenRCT2 on the PS3: big-endian port estimate (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/big-endian-port-estimate/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/big-endian-port-estimate/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from &lt;a href=&#34;../../../../research/game-reeval/&#34;&gt;game-reeval.md&lt;/a&gt;, where it was part B of the re-evaluation of 2026-10-19 (the file &lt;code&gt;reeval-part-B-openrct2.md&lt;/code&gt; its ranked table names). It was written before the port: the package and its PS3 runs are in the game&amp;rsquo;s bundle (&lt;a href=&#34;../../technical/&#34;&gt;technical notes&lt;/a&gt;, &lt;a href=&#34;../big-endian-port/&#34;&gt;the port&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;2026-10-19. Read-only look at the source plus web research. Nothing was built for ppc64. The RAM&#xA;figure in section 9 was measured in a throwaway amd64 container.&lt;/p&gt;&#xA;&lt;p&gt;Sources examined:&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenRCT2: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;h3 id=&#34;the-expansions&#34;&gt;The expansions&lt;/h3&gt;&#xA;&lt;p&gt;The Wacky Worlds and Time Twister expansions are optional. They come with the Triple Thrill Pack (its CD, a Steam or GOG folder, or either GOG installer, &lt;code&gt;setup_rollercoaster_tycoon2_2.0.0.6.exe&lt;/code&gt; or &lt;code&gt;setup_rollercoaster_tycoon_2_triple_thrill_pack_2.01.043_(17987).exe&lt;/code&gt;), and the same import installs them as roller-coaster-tycoon2-wacky-worlds-time-twister-data. Their scenarios then get their own tabs in OpenRCT2&amp;rsquo;s scenario list. The original 2002 CD has only the base game.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenRCT2: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Published, Untested: OpenRCT2 0.5.6 ported to big-endian ppc64, packaged, installed on the PS3 and baselined, not&#xA;played yet. Under qemu-ppc64 the build matches amd64 bit for bit on every check (gtest 275/275, 35 parks after&#xA;10000 ticks, 210 screenshots, 169 track designs: &lt;a href=&#34;../investigations/big-endian-port/&#34;&gt;the port&lt;/a&gt;).&#xA;Software renderer only (the GL engine needs GL 3.3 core). It needs RollerCoaster Tycoon 2&amp;rsquo;s data from the&#xA;player&amp;rsquo;s own copy: game-data-packager&amp;rsquo;s &lt;code&gt;roller-coaster-tycoon2-data&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;, in&#xA;&lt;code&gt;/usr/share/games/roller-coaster-tycoon2&lt;/code&gt;, a path upstream searches: a fresh home finds it there, gdp-step1 on&#xA;the PS3), which the licensed suite now builds too, or our older licensed &lt;code&gt;rct2-data&lt;/code&gt; (from the CD,&#xA;&lt;code&gt;/usr/share/games/rct2&lt;/code&gt;, the path our patch 0005 adds). On the PS3 it runs at 21-24 fps in Electric Fields (10 fps in Six Flags Magic&#xA;Mountain) with the console&amp;rsquo;s RAM nearly gone.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenRCT2: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenRCT2: the big-endian port, milestone 1 (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/big-endian-port/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/big-endian-port/</guid>
				<description>&lt;p&gt;The port followed &lt;a href=&#34;../big-endian-port-estimate/&#34;&gt;the estimate&lt;/a&gt; of the same day. Upstream refuses&#xA;big-endian on purpose (a &lt;code&gt;static_assert&lt;/code&gt; in &lt;code&gt;Platform.h&lt;/code&gt;), so this is our own out-of-tree series.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Starting point.&lt;/strong&gt; The closed PR #27114, &amp;ldquo;AmigaOS 3.x (m68k, big-endian) port [RFC]&amp;rdquo; (Thomas Luebker, 43&#xA;commits, 2026-09-10/12, head a5dbca57c5be, closed unmerged as too invasive and AI-generated), contributed to&#xA;OpenRCT2 and so GPL-3.0-or-later like the rest of the tree. Its endian core was applied on v0.5.6 (82b30979)&#xA;with 2 conflicts resolved (&lt;code&gt;DataSerialiserTraits.h&lt;/code&gt;, &lt;code&gt;SawyerCoding.cpp&lt;/code&gt;) and cleaned of the Amiga parts. The&#xA;work was done in a cross build (g++-16 for powerpc64 against a ppc64 sysroot) with the ppc64 binaries run&#xA;under qemu-ppc64-static, next to a native amd64 build of the same tree.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenRCT2: the blue screenshots and the console defaults (2026-10-27)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/colours-and-console-defaults/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openrct2/investigations/colours-and-console-defaults/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Report.&lt;/strong&gt; In the data-pilot run (docs/TESTS.md, 10-27 17:43) OpenRCT2 0.5.6+ds-1+ps3.889 with&#xA;&lt;code&gt;roller-coaster-tycoon2-data&lt;/code&gt; 89 (game-data-packager&amp;rsquo;s import of the user&amp;rsquo;s CD) showed the title, the windows&#xA;and Electric Fields in blue and purple in every xwd screenshot, while the 10-19 smoke test (the old&#xA;&lt;code&gt;rct2-data&lt;/code&gt;, build ps3.574) had looked right. It also started in a 1280x720 window with the changelog open.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-colours-the-game-draws-right-the-screenshot-is-wrong&#34;&gt;The colours: the game draws right, the screenshot is wrong&lt;/h2&gt;&#xA;&lt;p&gt;Nothing was wrong with the game, the data or the renderer. Same build, same data, same config&#xA;(&lt;code&gt;drawing_engine = SOFTWARE_HWD&lt;/code&gt;, the default a fresh config gets), started windowed:&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTTD</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/</guid>
				<description>A transport simulation: build railways, roads, ships and airports and run a profitable company.</description>
			</item>
			<item>
				<title>OpenTTD: &#34;no memory to back the GART&#34; with the staging pool (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/gart-nearly-full/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/gart-nearly-full/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; One of 13 OpenTTD runs since Mesa ps3.544 (&lt;code&gt;20261019T102932Z-openttd-base&lt;/code&gt;, with&#xA;&lt;code&gt;NV30_STAGING_POOL_MB=24&lt;/code&gt;) logged five &lt;code&gt;ps3rsx: no memory to back the GART (56 of 63 MiB in use)&lt;/code&gt; within a&#xA;second, at 37683 s of uptime; &lt;code&gt;bench/analysis/logscan.py&lt;/code&gt; flagged it as NEW. The run still finished&#xA;(&lt;code&gt;ended=window&lt;/code&gt;), nothing showed in the picture, and the other twelve runs are clean.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; OpenTTD uploads an 8 MB staging buffer per frame; the 24 MB pool (Mesa 0040) and the rest of&#xA;the process&amp;rsquo;s buffers reach the 63 MiB GART when something else arrives at the same moment (a second&#xA;4 MB buffer, the title screen&amp;rsquo;s textures). This is a different path from the GART-full crashes of other&#xA;games: the kernel cannot get pages (CMA chunks) to back the GART, not a full aperture. The draw that asked&#xA;for the buffer may have been dropped.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTTD: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Original graphics and sound&lt;/h2&gt;&#xA;&lt;p&gt;OpenTTD plays with its free OpenGFX, OpenSFX and OpenMSX. If you own Transport Tycoon Deluxe for Windows, its original graphics, sounds and music can replace them. It needs the &lt;code&gt;trg*.grf&lt;/code&gt; files and &lt;code&gt;sample.cat&lt;/code&gt; of the Windows version, and takes its music in either arrangement: the General MIDI &lt;code&gt;gm_tt*.gm&lt;/code&gt; files or the FM synthesizer ones, &lt;code&gt;fm/9_tt*.fm&lt;/code&gt;, which some copies have instead. The data is installed as &lt;code&gt;transport-tycoon-deluxe-data&lt;/code&gt;, with &lt;code&gt;-music&lt;/code&gt; (General MIDI, OpenTTD&amp;rsquo;s &lt;code&gt;original_windows&lt;/code&gt; music set) or &lt;code&gt;-music-fm&lt;/code&gt; (the FM files and their own set, &lt;code&gt;original_windows_fm&lt;/code&gt;, which our game-data-packager writes); both are Standard MIDI files that OpenTTD plays through FluidSynth. Once &lt;code&gt;trg1r.grf&lt;/code&gt; exists the game offers a launcher with the original sets (&lt;code&gt;-I&lt;/code&gt;/&lt;code&gt;-S original_windows&lt;/code&gt;, and &lt;code&gt;-M&lt;/code&gt; the General MIDI music when it is there, else the FM music); it picks them at every start, so a music choice made in its options lasts until the next start.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTTD: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/2026-10-25-session-0207/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/2026-10-25-session-0207/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenTTD: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenTTD: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/technical/</guid>
				<description>&lt;p&gt;OpenTTD 15.1 runs with the right picture through both of its video drivers: SDL&amp;rsquo;s software path and the&#xA;OpenGL driver, which our patches made start on nv30. With the 8bpp-optimized blitter (our package&amp;rsquo;s&#xA;default since patch 0003) and Mesa 0040&amp;rsquo;s staging pool, the 1962 benchmark savegame plays at about 52&#xA;steady fps; its OpenGL played session (2026-10-25) had a 60 fps median with clean music. The software&#xA;driver plays too, but gives the frame timer nothing to measure.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTTD: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>OpenTTD: the 1962 savegame, and why the 8bpp-optimized blitter became the default (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/savegame-blitters/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/savegame-blitters/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; On the new savegame benchmark (820 vehicles, 30 towns, the camera on a city of 5000, sound&#xA;and music on, the GL driver) Debian&amp;rsquo;s default 32bpp-anim blitter ran at 10-14 fps, mostly 11, with 22-54&#xA;s of gameplay stalls in the 120 s window, 3500-4700 underruns, 13-22 MB free.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence&lt;/strong&gt; (batch ssdroot3: SSD root, kernel .472, Mesa ps3.476, openttd ps3.297, three rounds per group):&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Variant&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Steady fps&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;1% low&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Gameplay stalls&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Underruns&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Free RAM&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;base&lt;/code&gt; (32bpp-anim), 9 runs&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;10-14, mostly 11&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5.5-7.5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;22-54 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;700-4700&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;13-22 MB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;blit8&lt;/code&gt; (8bpp-optimized)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;34, 35, 43&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;13-15&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0.3-0.5 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2600-4000&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;41 MB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;blit32&lt;/code&gt; (32bpp-optimized)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;13-14&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;6-6.5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;26-35 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3400-4400&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;18-26 MB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;nosound&lt;/code&gt; / &lt;code&gt;nomusic&lt;/code&gt; / &lt;code&gt;quiet&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;14 / 13 / 14&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;7-8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;19-21 / 24-28 / 19-21 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0 / 63-107 / 0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;hz22&lt;/code&gt;, &lt;code&gt;buf2048&lt;/code&gt;, &lt;code&gt;buf4096&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;11-14, as &lt;code&gt;base&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5.7-7.5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;21-46 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;80-3500&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;zoomout&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;7&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4.0-4.3&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;115-120 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3200-4400&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;9-18 MB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;scroll&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;7-8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3.9-4.4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;100-116 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2700-4600&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;simplay&lt;/code&gt; (the save&amp;rsquo;s simulation only)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;6000 ticks in 82.7 s&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;51 MB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;32bpp-anim draws every sprite into a 32-bit buffer and keeps an 8-bit animation buffer next to it; the&#xA;8bpp-optimized blitter writes one byte a pixel and the GL driver applies the palette on the GPU. So the&#xA;frame rate triples and a frame no longer takes 100 ms or more. 32bpp-optimized (no palette animation)&#xA;gains only 2 fps. The picture is the same: webcam pairs of &lt;code&gt;base&lt;/code&gt; and &lt;code&gt;blit8&lt;/code&gt; at 60 s and 150 s show the&#xA;same sprites, town labels, bridges, water and date bar (the speckled water is the webcam catching the&#xA;palette animation mid-cycle, in both). OpenGFX is an 8bpp base set, so nothing the 8bpp blitter loses&#xA;shows; 32bpp-only NewGRFs would. Zooming out and scrolling were the worst case: the sprite count per&#xA;frame. The music costs about 3 fps (-20%) and 25-30 s of stalls.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTTD: the OpenGL driver on GL 2.1, and SDL3&#39;s blue cast (2026-10-16 to 10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/gl-driver-on-gl21/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openttd/investigations/gl-driver-on-gl21/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The research expected the GL mode to fail at init with no GPU risk, and it did: stock&#xA;&lt;code&gt;-v sdl-opengl&lt;/code&gt; refused to start on nv30 with &amp;ldquo;Single element texture formats not supported&amp;rdquo;&#xA;(&lt;a href=&#34;../../test-runs/#batch-2026-10-16-openttd-smokes&#34;&gt;batch 2026-10-16-openttd-smokes&lt;/a&gt;). The software path started, but with a strong blue cast.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The OpenGL driver needs GL 3.0 or ARB_texture_rg for its single-channel textures; its VAO check wants&#xA;ARB &lt;em&gt;and&lt;/em&gt; APPLE vertex array objects below GL 3.0 (an upstream bug: Mesa has no APPLE one); and its&#xA;sprite shaders use &lt;code&gt;texture2DLod&lt;/code&gt; in the fragment stage, which needs ARB_shader_texture_lod (nv30 has&#xA;no TXL).&lt;/li&gt;&#xA;&lt;li&gt;SDL3&amp;rsquo;s accelerated window framebuffer was BGRA8888 on big-endian, so OpenTTD&amp;rsquo;s 0xAARRGGBB words came out&#xA;with red and blue swapped.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fix.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Origin: remake or clone</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/remake/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/remake/</guid>
				<description></description>
			</item>
			<item>
				<title>Part A: space games (Endless Sky, Naev)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-a-space/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-a-space/</guid>
				<description>&lt;h2 id=&#34;endless-sky-own-c-engine-sdl2--glew-upstream-master-2026-10-18-debian-sidports-0112-1&#34;&gt;Endless Sky (own C++ engine, SDL2 + GLEW, upstream master 2026-10-18; Debian sid/ports 0.11.2-1)&lt;/h2&gt;&#xA;&lt;p&gt;Verdict: the only game of the pair worth porting, and upstream already ships an &amp;ldquo;experimental OpenGL 2&amp;rdquo; path (3D textures instead of texture arrays, no VAO, EXT FBO) that needs GLSL 1.20 shader files supplied as a plugin, so effort is M. The blocker is memory: 1.3 GB RSS on the PC with the lowest texture settings, 477 MB of it GPU textures; it fits 256 MB only after DXT compression plus more cuts, and that is unproven. ppc64 binary exists in debian-ports, novelty is 5 (no PS3 port found).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Part B: 2D games and Java (Taisei, OpenClonk, Hypersomnia, DDNet, Mindustry)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-b-2d/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-b-2d/</guid>
				<description>&lt;p&gt;All measurements: Debian sid amd64 in a podman box, Xvfb + llvmpipe (Mesa 26.2.5, GL 4.6 core), no audio&#xA;device. Taisei at 960x540, OpenClonk and Hypersomnia at 1280x720, Mindustry at 1280x720 (llvmpipe at&#xA;1080p ran at 7 fps for Taisei and starved the game logic, so the smaller windows were used; texture MB&#xA;do not depend on window size, framebuffer MB do). llvmpipe baseline ~100 MB is subtracted for PS3&#xA;estimates. Reports (small) are under /mnt/data_linux/Temp/ps3/gl3census/traces/{taisei,clonk,hyper,mindustry}/c*/report.md;&#xA;big traces and downloads were deleted.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Part C: RTS games (Warzone 2100, OpenRA, Beyond All Reason / Recoil, 0 A.D.)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-c-rts/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-c-rts/</guid>
				<description>&lt;p&gt;Measured 2026-10-19 on the PC (Debian sid box &lt;code&gt;wz&lt;/code&gt;, Xvfb 1920x1080, llvmpipe, Debian package 4.7.0-3).&#xA;Census report kept at /mnt/data_linux/Temp/ps3/gl3census/traces/wz/c47/report.md, mem files in work/wz/.&lt;/p&gt;&#xA;&lt;h2 id=&#34;warzone-2100-own-engine-sdl2--glad-quickjs-master-of-2026-10-17--47x-debian-sid-470-3&#34;&gt;Warzone 2100 (own engine, SDL2 + GLAD, QuickJS; master of 2026-10-17 = 4.7.x, Debian sid 4.7.0-3)&lt;/h2&gt;&#xA;&lt;p&gt;Verdict: the current line (4.4 to 4.7) needs GL 3.0/3.1+ and is not worth porting, but &lt;strong&gt;release 4.3.5 (2023-04-16) is the last one that runs on plain GL 2.1 or GLES 2.0&lt;/strong&gt; with GLSL 1.20 shaders, no instancing, no UBOs, no texture arrays. So the route is &amp;ldquo;build 4.3.x, change nothing in the renderer, maybe cut textures&amp;rdquo;. Effort S to M, RAM is the open question (estimate 300-450 MB, so it needs cuts to fit; not 256 MB friendly), novelty 5. ppc64: Debian ports ships 4.5.5deb-1+b1 on ppc64 (so the game compiles and links big-endian); 4.5.5 itself needs GL 3.0 though.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Part D: first-person shooters (Xonotic, Unvanquished, Red Eclipse 2, Warfork, OpenMoHAA, ET: Legacy)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-d-fps/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-d-fps/</guid>
				<description>&lt;h2 id=&#34;xonotic-darkplaces-release-086-of-2023-06-20-and-engine-git-master-of-2026-01-22&#34;&gt;Xonotic (DarkPlaces, release 0.8.6 of 2023-06-20 and engine git master of 2026-01-22)&lt;/h2&gt;&#xA;&lt;p&gt;Verdict: Xonotic 0.8.6 is NOT GL3-blocked: its own DarkPlaces still has the GL 1.1/1.3/2.0 renderpaths and runs on GL 2.1 + GLSL 1.20 as shipped (measured). Only engine master (and Debian&amp;rsquo;s darkplaces) dropped them for GL 3.2 core / GLES2. Route: build the 0.8.6 engine for ppc64 like darkplaces-gl2 (effort S-M), keep the GL20 path. The cost is memory (about 200 MB of textures, 850 MB PC RSS) and &lt;del&gt;450 draws/frame: a &amp;ldquo;needs cuts&amp;rdquo; game, not a port.&#xA;FEATURES (0.8.6 GL20 path): glsl_min=120 core_only=n fallback=gl2 (also gl13, gl11) int_ops=no bitwise=no texelFetch=no textureSize=no ubo=no (guarded, 19 programs link at #version 120) instancing=no tex_arrays=no float_tex=opt float_rt=opt (HDR/bloom only) rg_tex=no mrt=1 vao=no sync=no geom=no tf=no compute=no derivatives=opt (offsetmapping, GLSL130 only) textureLod_fs=no vertexid=no flat=no arb_fbo=opt (EXT_fbo is enough; blit only for video capture) srgb_fb=no vtf=no dyn_loops=opt (blur/SSAO-style loops, bloom) big_shaders=opt (permutation uber-shader, 19 programs in the lowest preset, each of 74 KB source before preprocessing; the per-permutation size is UNVERIFIED on nv30; Nexuiz Classic&amp;rsquo;s older shader already needs the lean config)&#xA;FEATURES (engine master, GL32 path): glsl_min=140 if available else 120 core_only=y (context request) fallback=none; GLES2 path exists, see section 1. int_ops=no ubo=opt (r_glsl_skeletal only, GLSL 140) vao=req (core profile) blit=opt&#xA;SCORES: popularity=5 novelty=5 playability_256MB=2 effort=M&#xA;ppc64=not-in-debian (no xonotic package in sid; engine builds on Debian ports as darkplaces 0&lt;/del&gt;20180908+git20260122, which is GL32/GLES2 only) data=free size_MB=1180 (zip 1.24 GB; data pk3 317 + maps 626 + nexcompat 125 + music 111)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Part E: id Tech 4, the Doom source ports, FreeSpace 2 Open</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-e-idtech-doom-fs2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-e-idtech-doom-fs2/</guid>
				<description>&lt;p&gt;The agent for this part stopped at the usage limit after its measurements; the coordinator wrote the&#xA;part from its saved runs (&lt;code&gt;$B/traces/dhewm3&lt;/code&gt;, &lt;code&gt;$B/traces/gzdoom&lt;/code&gt;) and from the clones it left&#xA;(&lt;code&gt;$B/src/{dhewm3,gzdoom,tdm,fs2open.github.com,doomsday}&lt;/code&gt;). Clone dates: dhewm3 455b88e&#xA;2026-06-08, GZDoom c26ce2e 2026-08-10, fs2open 2026-10-18.&lt;/p&gt;&#xA;&lt;h2 id=&#34;dhewm3-doom-3-gpl-engine-155--git-455b88e&#34;&gt;dhewm3 (Doom 3 GPL engine, 1.5.5 / git 455b88e)&lt;/h2&gt;&#xA;&lt;p&gt;Verdict: not GL3-blocked. It renders with GL 1.x fixed function plus ARB_vertex_program /&#xA;ARB_fragment_program, which nv30 exposes; big-endian is a first-class build option. The blocker is&#xA;memory: the free Doom 3 demo&amp;rsquo;s first map peaked at 1161 MB on the PC. Effort M (our ppc64 build,&#xA;texture downsizing and compression, memory cuts), playable only if those cuts land.&#xA;FEATURES: glsl_min=none (ARB assembly) core_only=n fallback=gl1 int_ops=no bitwise=no texelFetch=no&#xA;textureSize=no ubo=no instancing=no tex_arrays=no float_tex=no float_rt=no rg_tex=no mrt=1 vao=no&#xA;sync=no geom=no tf=no compute=no derivatives=no textureLod_fs=no vertexid=no flat=no arb_fbo=no&#xA;srgb_fb=no vtf=no dyn_loops=no big_shaders=no (ARB programs written for NV30/R300-class cards)&#xA;SCORES: popularity=4 novelty=3 playability_256MB=2 effort=M ppc64=not-in-debian (contrib, arch any:&#xA;our build) data=non-free (free demo, 462 MB) size_MB=462 (demo) / ~1500 (retail)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Part F: engines and runtimes (OpenMW, Barotrauma, Godot 3 games, SDL3 GPU / raylib, skips, scan)</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/gl3-census-f-engines/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/gl3-census-f-engines/</guid>
				<description>&lt;p&gt;Measured on the PC in podman boxes (Xvfb 1920x1080, llvmpipe, apitrace). Everything not marked&#xA;&amp;ldquo;measured&amp;rdquo; or &amp;ldquo;read in source (file:line)&amp;rdquo; is UNVERIFIED or an estimate.&lt;/p&gt;&#xA;&lt;h2 id=&#34;openmw-openscenegraph-0510-git-2026-10-18-master&#34;&gt;OpenMW (OpenSceneGraph, 0.51.0, git 2026-10-18 master)&lt;/h2&gt;&#xA;&lt;p&gt;Verdict: Already GL 2.1 / GLSL 1.20 in its default configuration, so it is not GL3-blocked. Real work is&#xA;big-endian (ESM and BSA readers do no byte swapping, so Morrowind.esm cannot be read on ppc64 today; M),&#xA;then CPU and memory tuning for a 3.2 GHz in-order PPE with ~160 MB. Debian-ports ppc64 builds&#xA;0.51.0-1+b4. Data is non-free (Morrowind) unless one plays the CC0 Template and Example Suite. Novel on&#xA;the PS3: yes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Particles of one size at every distance: nv30 never took the vertex program&#39;s point size (2026-10-27)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/point-size-attenuation/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/point-size-attenuation/</guid>
				<description>&lt;p&gt;Found right after the round particles of &lt;a href=&#34;../point-smooth/&#34;&gt;the point-smooth fix&lt;/a&gt; showed&#xA;up on the PS3; the driver mechanism of this fix, Mesa 0051 and ps3rsx&amp;rsquo;s PS3_ABI 2, is in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DRIVER.md#the-mesa-side&#34;&gt;docs/DRIVER.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;With Mesa ps3.874 the particles (blood, sparks, bullet trails) were round, but every one was a disc&#xA;of about 40 pixels at 1080p, whether it was next to the player or across the room. Blood sprays&#xA;turned into big overlapping blobs. The user remembered them as &amp;ldquo;gradients on PC, or much smaller&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Players: bots</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/bots/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/bots/</guid>
				<description></description>
			</item>
			<item>
				<title>Players: local multiplayer</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/local-multiplayer/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/local-multiplayer/</guid>
				<description></description>
			</item>
			<item>
				<title>Players: online multiplayer</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/online-multiplayer/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/online-multiplayer/</guid>
				<description></description>
			</item>
			<item>
				<title>Players: single player</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/single-player/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/single-player/</guid>
				<description></description>
			</item>
			<item>
				<title>Quake III Arena</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/</guid>
				<description>id Software&amp;rsquo;s 1999 arena shooter against bots, played with Walnut&amp;rsquo;s ioquake3 from your own copy, with Team Arena if you have it.</description>
			</item>
			<item>
				<title>Quake III Arena: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;h3 id=&#34;which-editions-work&#34;&gt;Which editions work&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;A Quake III Arena CD&lt;/strong&gt; (or its ISO, or an MDF/MDS image of it): &lt;code&gt;baseq3/pak0.pk3&lt;/code&gt;. The CD&amp;rsquo;s release is older than 1.32, so the import downloads id&amp;rsquo;s 1.32 point release (&lt;code&gt;linuxq3apoint-1.32b-3.x86.run&lt;/code&gt;, 30 MB) for pak1 to pak8, the files ioquake3 needs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;GOG&amp;rsquo;s Quake III Gold&lt;/strong&gt; (&lt;code&gt;setup_quake3_2.0.0.2.exe&lt;/code&gt;, or the folder it installs): Quake III Arena and Team Arena, both at 1.32; nothing is downloaded. The installer is unpacked whole, so it needs more free space than the folder.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Steam&amp;rsquo;s&lt;/strong&gt; &lt;code&gt;common/Quake 3 Arena&lt;/code&gt; folder: the same files as GOG&amp;rsquo;s.&lt;/li&gt;&#xA;&lt;li&gt;The demo (&lt;code&gt;quake3-demo-data&lt;/code&gt;) is a package of the same tool; it has not been tried.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;what-you-get&#34;&gt;What you get&lt;/h3&gt;&#xA;&lt;p&gt;Two menu entries, shown once their data is there: Quake III Arena (&lt;code&gt;fs_basepath /usr/lib/quake3/base&lt;/code&gt;) and Quake III: Team Arena (&lt;code&gt;/usr/lib/quake3/ta&lt;/code&gt;, &lt;code&gt;fs_game missionpack&lt;/code&gt;). Both start fullscreen at the TV&amp;rsquo;s resolution with the OpenGL 1 renderer and a pad mapping (triggers fire and zoom, shoulders change weapons, A jumps, B crouches, Start opens the menu), from Walnut&amp;rsquo;s &lt;code&gt;autoexec.cfg&lt;/code&gt; in each folder.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Quake III Arena: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested as a played game: published so that Walnut Games can set up its data. On 2026-10-27 the data&#xA;came from the CD&amp;rsquo;s ISO on the PS3 and ioquake3 loaded q3dm1 with the right picture (lightmaps, models,&#xA;HUD; xwd fullscreen, looked at); on 2026-10-28 from GOG&amp;rsquo;s installer, with Team Arena, whose mpteam1&#xA;loaded with its own HUD. Nobody has played a session or measured it yet.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-data-and-settings&#34;&gt;Packages, data and settings&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Engine&lt;/strong&gt;: our &lt;code&gt;ioquake3&lt;/code&gt; (&lt;a href=&#34;../../../engines/ioquake3/&#34;&gt;ioquake3&lt;/a&gt;, OpenArena&amp;rsquo;s engine), &lt;code&gt;/usr/lib/ioquake3/ioquake3&lt;/code&gt;. Its&#xA;package already has Debian&amp;rsquo;s native game code links: &lt;code&gt;/usr/lib/quake3/base/baseq3/{cgame,qagame,ui}.so&lt;/code&gt;&#xA;for Quake III and &lt;code&gt;/usr/lib/quake3/ta/{baseq3,missionpack}/&lt;/code&gt; for Team Arena. The launchers set&#xA;&lt;code&gt;vm_cgame 0&lt;/code&gt;, &lt;code&gt;vm_game 0&lt;/code&gt;, &lt;code&gt;vm_ui 0&lt;/code&gt; and &lt;code&gt;sv_pure 0&lt;/code&gt;, so ioquake3 loads those native libraries&#xA;(ioquake3&amp;rsquo;s build of id&amp;rsquo;s GPL game code, the same game as 1.32&amp;rsquo;s bytecode): ioquake3 has no PowerPC&#xA;compiler for the QVM bytecode any more (only x86, x86-64 and ARM), and the interpreter is slow on the&#xA;PPE. With &lt;code&gt;sv_pure 1&lt;/code&gt; the client would insist on the paks&amp;rsquo; bytecode.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: game-data-packager&amp;rsquo;s &lt;code&gt;quake3-data&lt;/code&gt; (&lt;code&gt;/usr/share/games/quake3-data/baseq3/pak0-8.pk3&lt;/code&gt;) and&#xA;&lt;code&gt;quake3-team-arena-data&lt;/code&gt; (&lt;code&gt;.../quake3-team-arena-data/missionpack/pak0-3.pk3&lt;/code&gt;), each with gdp&amp;rsquo;s links&#xA;into &lt;code&gt;/usr/lib/quake3/{base,ta}&lt;/code&gt;. Those links are why the data manifest and walnut-games-helper take&#xA;symlinks now (docs/PACKAGING.md &amp;ldquo;Links&amp;rdquo;). Team Arena&amp;rsquo;s Conflicts/Replaces &lt;code&gt;quake3-data (&amp;lt;&amp;lt; 77~)&lt;/code&gt; is&#xA;about old gdp builds and is left out of the manifest: unversioned it would remove quake3-data.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Launchers&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/quake-3-arena/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), both &lt;code&gt;NoDisplay=true&lt;/code&gt; with&#xA;&lt;code&gt;X-Walnut-Requires=&lt;/code&gt; the pak0 of their data: &amp;ldquo;Quake III Arena&amp;rdquo; (&lt;code&gt;fs_basepath /usr/lib/quake3/base&lt;/code&gt;) and&#xA;&amp;ldquo;Quake III: Team Arena&amp;rdquo; (&lt;code&gt;fs_basepath /usr/lib/quake3/ta&lt;/code&gt;, &lt;code&gt;fs_game missionpack&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Defaults&lt;/strong&gt;: &lt;code&gt;autoexec.cfg&lt;/code&gt; in &lt;code&gt;/usr/lib/quake3/base/baseq3/&lt;/code&gt; and &lt;code&gt;/usr/lib/quake3/ta/baseq3/&lt;/code&gt;&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/quake-3-arena/desktop/files&#34;&gt;desktop/files&lt;/a&gt;), OpenArena&amp;rsquo;s: &lt;code&gt;opengl1&lt;/code&gt;, &lt;code&gt;r_mode -2&lt;/code&gt; fullscreen at the desktop&amp;rsquo;s&#xA;resolution, vsync, &lt;code&gt;com_maxfps 60&lt;/code&gt;, DXT1 textures, the pad bindings; and &lt;code&gt;cl_cdkeyCheck 0&lt;/code&gt;&#xA;(ioquake3 0030): without it both menus open on a CD KEY screen at every start. &lt;code&gt;ui_cdkeychecked&lt;/code&gt; can&amp;rsquo;t&#xA;skip it: the UIs register it &lt;code&gt;CVAR_ROM&lt;/code&gt;, which forces a value set on the command line or in a config&#xA;back to 0. No key is shipped or needed (it mattered only to id&amp;rsquo;s authorize servers).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt; live in ioquake3&amp;rsquo;s XDG folders: &lt;code&gt;~/.config/Quake3&lt;/code&gt;, &lt;code&gt;~/.local/state/Quake3&lt;/code&gt; (&lt;code&gt;~/.q3a&lt;/code&gt; when it exists).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;data-sources-tried&#34;&gt;Data sources tried&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;CD ISO&lt;/strong&gt; (&lt;code&gt;QUAKE3.iso&lt;/code&gt;, 1.11-era: &lt;code&gt;Quake3/baseq3/pak0.pk3&lt;/code&gt; and pak1): loop-mounted by walnut-data;&#xA;gdp needs 1.32&amp;rsquo;s pak1-8 too, from id&amp;rsquo;s point release &lt;code&gt;linuxq3apoint-1.32b-3.x86.run&lt;/code&gt;. gdp downloaded it&#xA;from &lt;code&gt;ftp.fu-berlin.de&lt;/code&gt; (idstuff) in the games builder on the PC. On the PS3 the import ran with&#xA;&lt;code&gt;--no-download&lt;/code&gt; and GOG&amp;rsquo;s pak1-8 beside the ISO, for lack of room for the download&amp;rsquo;s 128 MB.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;GOG&amp;rsquo;s Quake III Gold&lt;/strong&gt; (&lt;code&gt;setup_quake3_2.0.0.2.exe&lt;/code&gt;, 921 MB, known to gdp): gdp unpacks&#xA;&lt;code&gt;baseq3/pak0.pk3&lt;/code&gt; as well when only Team Arena is asked for (the installer unpacks to 981 MB, whichever&#xA;package is asked for); walnut-data&amp;rsquo;s space check counts that. On the PS3 (2026-10-28) a plain import made&#xA;quake3-data in 349 s and named Team Arena as an add-on, &lt;code&gt;-p quake3-team-arena-data&lt;/code&gt; took 315 s; about&#xA;2.4 GB free for the base and 2 GB for Team Arena, besides the installer itself.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MDF/MDS&lt;/strong&gt;: the CD&amp;rsquo;s ISO written as a 2448-byte-sector MDF (2352 + 96 bytes of subchannel) with its&#xA;&lt;code&gt;.mds&lt;/code&gt; and extracted again by walnut-data&amp;rsquo;s code gave the ISO 9660 volume byte for byte (on the PC).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;known-problems&#34;&gt;Known problems&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sound drops out for 80-170 ms about once a minute in a game with bots (OpenAL&amp;rsquo;s &lt;code&gt;mmap commit error: Broken pipe&lt;/code&gt; in the log, one per dropout): OpenAL&amp;rsquo;s mixer thread starves at normal priority. With a&#xA;real-time limit for the session there were none in 3 runs; that change is system-wide and not made&#xA;yet (&lt;a href=&#34;../../../engines/ioquake3/investigations/sigterm-hang-and-openal-xruns/&#34;&gt;the investigation&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;engine-options&#34;&gt;Engine options&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ioquake3 (the pick: &lt;a href=&#34;../../openarena/technical/&#34;&gt;OpenArena&lt;/a&gt; runs on our ioquake3 engine, gamedb/engines/ioquake3)&lt;/li&gt;&#xA;&lt;li&gt;Quake3e (a performance fork: x86/ARM JIT, Vulkan; no PPC JIT)&lt;/li&gt;&#xA;&lt;li&gt;spearmint (not fetchable)&lt;/li&gt;&#xA;&lt;li&gt;id&amp;rsquo;s Quake-III-Arena (frozen dump, reference)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;research&#34;&gt;Research&lt;/h2&gt;&#xA;&lt;p&gt;What the surveys and plans said about it, newest first; each line names its source, the section and the date.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Quake III Arena: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quake-3-arena/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>QuakeSpasm</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quakespasm/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quakespasm/</guid>
				<description>A modern source port of id Software&amp;rsquo;s Quake, with the original campaign and mods.</description>
			</item>
			<item>
				<title>QuakeSpasm: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quakespasm/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quakespasm/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;h3 id=&#34;which-editions-work&#34;&gt;Which editions work&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Shareware&lt;/strong&gt; (free): version 1.06, the first episode, downloaded as &lt;code&gt;quake106.zip&lt;/code&gt; by game-data-packager (package &lt;code&gt;quake-shareware&lt;/code&gt;); a &lt;code&gt;quake106.zip&lt;/code&gt; you already have works as a source too.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The full game&lt;/strong&gt;: package &lt;code&gt;quake-registered&lt;/code&gt;. It needs &lt;code&gt;id1/pak0.pak&lt;/code&gt; and &lt;code&gt;id1/pak1.pak&lt;/code&gt; of your copy: a CD, The Offering from GOG (the installed folder or &lt;code&gt;setup_quake_the_offering_*.exe&lt;/code&gt;), or a Steam &lt;code&gt;common/Quake&lt;/code&gt; folder. The 2021 re-release can&amp;rsquo;t stand in for it: it has no original paks (it is an edition of its own, below). A CD&amp;rsquo;s 1.01 &lt;code&gt;pak0.pak&lt;/code&gt; is brought to 1.06 with the patch files game-data-packager downloads.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The CD&amp;rsquo;s music&lt;/strong&gt;: package &lt;code&gt;quake-music&lt;/code&gt;, optional. A BIN/CUE image of the CD (give the &lt;code&gt;.cue&lt;/code&gt;, or the &lt;code&gt;.bin&lt;/code&gt; next to it) brings the data and the music in one import.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The 2021 re-release&lt;/strong&gt; (Nightdive&amp;rsquo;s Quake Enhanced): package &lt;code&gt;quake-rerelease&lt;/code&gt;, edition Remaster. From GOG&amp;rsquo;s installer &lt;code&gt;setup_quake_enhanced_1.0_(60828).exe&lt;/code&gt; (607 MB) or that build installed; other builds of the re-release (Steam&amp;rsquo;s, older GOG updates) have not been checked. It takes the re-release&amp;rsquo;s own &lt;code&gt;id1/pak0.pak&lt;/code&gt; (the whole game in one 172 MB pak, with coloured lighting and the re-release&amp;rsquo;s QuakeC), its English text from &lt;code&gt;QuakeEX.kpf&lt;/code&gt; and its CD music, 257 MB installed. The import on the PS3 takes about four minutes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The re-release&amp;rsquo;s add-ons&lt;/strong&gt;, optional, from the same installer: Scourge of Armagon (&lt;code&gt;quake-rerelease-armagon&lt;/code&gt;, 103 MB with its music), Dissolution of Eternity (&lt;code&gt;quake-rerelease-dissolution&lt;/code&gt;, 70 MB with its music), Dimension of the Past (&lt;code&gt;quake-rerelease-dopa&lt;/code&gt;, 39 MB) and Dimension of the Machine (&lt;code&gt;quake-rerelease-dimension-of-the-machine&lt;/code&gt;, 474 MB). These are the re-release&amp;rsquo;s own builds, with QuakeC written for it, so they need &lt;code&gt;quake-rerelease&lt;/code&gt; and don&amp;rsquo;t play with the original game&amp;rsquo;s paks. An import of the installer makes the re-release and then names each add-on it holds (Walnut Games shows an Also add button for each; &lt;code&gt;walnut-data import -p quake-rerelease-dopa quakespasm &amp;lt;installer&amp;gt;&lt;/code&gt; adds one). All four played on the PS3 (2026-10-28), each with its own music where the pack has it. Dimension of the Machine needs about 2.5 GB free while it is made. The installer&amp;rsquo;s CTF pak (Threewave Capture the Flag) is left out: it is for multiplayer, and QuakeSpasm has no bots.&lt;/li&gt;&#xA;&lt;li&gt;The mission packs (&lt;code&gt;quake-armagon&lt;/code&gt;, &lt;code&gt;quake-dissolution&lt;/code&gt;) and their music are packages of the same tool; they have not been tried on the PS3.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;what-you-get&#34;&gt;What you get&lt;/h3&gt;&#xA;&lt;p&gt;The data ends up in &lt;code&gt;/usr/share/games/quake/id1&lt;/code&gt;, the music in &lt;code&gt;/usr/share/games/quake/id1/music&lt;/code&gt; (QuakeSpasm plays &lt;code&gt;trackNN.ogg&lt;/code&gt; there for the CD track a level asks for). The menu entries QuakeSpasm (GLSL) and QuakeSpasm (no GLSL) read &lt;code&gt;/usr/share/games/quake&lt;/code&gt;, so they play whichever edition is installed, and they show only when one is (shareware or full game). &lt;code&gt;quake-registered&lt;/code&gt; replaces &lt;code&gt;quake-shareware&lt;/code&gt;, so the full game takes over the same folder. The 2021 re-release has a folder of its own, &lt;code&gt;/usr/share/games/quake-rerelease&lt;/code&gt;, next to the original game, and its own menu entry, Quake (2021 re-release), which shows once it is installed; each add-on goes into a folder there (&lt;code&gt;hipnotic&lt;/code&gt;, &lt;code&gt;rogue&lt;/code&gt;, &lt;code&gt;dopa&lt;/code&gt;, &lt;code&gt;mg1&lt;/code&gt;) and has its own entry, such as Quake (2021): Dimension of the Machine. The original game keeps its saves and settings in &lt;code&gt;~/.quakespasm/id1&lt;/code&gt;, the re-release in &lt;code&gt;~/.quakespasm/rerelease&lt;/code&gt; and each add-on in &lt;code&gt;~/.quakespasm/&amp;lt;its folder&amp;gt;&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>QuakeSpasm: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quakespasm/test-runs/2026-10-26-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quakespasm/test-runs/2026-10-26-session/</guid>
				<description></description>
			</item>
			<item>
				<title>QuakeSpasm: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quakespasm/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quakespasm/technical/</guid>
				<description>&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;quakespasm&lt;/code&gt; 0.96.3, unpatched, with the Quake shareware data. It plays the shareware&amp;rsquo;s demo1&#xA;timedemo at 91.0 steady fps with almost no stalling (&lt;a href=&#34;../test-runs/#batch-2026-10-18-mesa-407-switches&#34;&gt;batch 2026-10-18-mesa-407-switches&lt;/a&gt;), and its&#xA;played session of 2026-10-26 (the GLSL launcher) had a 70 fps median with a 1% low of 42 and&#xA;no audible dropouts: one of the games that meet the 60 fps target with room to spare.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-data-and-settings&#34;&gt;Packages, data and settings&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;quakespasm&lt;/code&gt; from Debian, nothing of ours in the binary. Two menu entries of ours&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/quakespasm/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;) replace Debian&amp;rsquo;s (diverted): &amp;ldquo;QuakeSpasm (GLSL)&amp;rdquo; and a&#xA;&lt;code&gt;-noglsl&lt;/code&gt; one, both &lt;code&gt;-basedir /usr/share/games/quake -nopackedpixels -width 1920 -height 1080 -fullscreen&lt;/code&gt;, packed hidden (&lt;code&gt;NoDisplay=true&lt;/code&gt;, &lt;code&gt;X-Walnut-Requires=/usr/share/games/quake/id1/pak0.pak&lt;/code&gt;,&#xA;which the shareware and the full game both have), so they show only with the original game&amp;rsquo;s data; a third, Quake (2021 re-release), for the re-release&amp;rsquo;s own folder (below). Don&amp;rsquo;t install&#xA;the &lt;code&gt;quake&lt;/code&gt; launcher package: it pulls GTK 4.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;-nopackedpixels&lt;/code&gt;&lt;/strong&gt;: 0.96.3&amp;rsquo;s packed-pixel lightmaps give wrong colours and dlight wraparound on&#xA;big-endian (quakespasm issue #114). Upstream master disables the path on big-endian; nv30 has no&#xA;10-bit format anyway.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The data&lt;/strong&gt; (licensed, not in the public suite): &lt;code&gt;quake-shareware&lt;/code&gt;&#xA;(&lt;code&gt;/usr/share/games/quake/id1/pak0.pak&lt;/code&gt;, Quake 1.06 shareware, 18 MB, demo1-3), built once on the PC by&#xA;game-data-packager 89 (&lt;code&gt;make game-data&lt;/code&gt;, the Debian games builder with &lt;code&gt;lhasa&lt;/code&gt;; the shareware archive&#xA;downloaded from id&amp;rsquo;s mirrors and kept in &lt;code&gt;build/downloads/game-data&lt;/code&gt;) as &lt;code&gt;quake-shareware_89_all.deb&lt;/code&gt;,&#xA;Section &lt;code&gt;non-free/games&lt;/code&gt;, and published once to our licensed suite, since game-data-packager&amp;rsquo;s output&#xA;isn&amp;rsquo;t reproducible: the version 89 files the LAN repository published are in the retirement backup&amp;rsquo;s&#xA;&lt;code&gt;ps3-licensed-debs/&lt;/code&gt;, and &lt;code&gt;make publish DEBS=&amp;quot;&amp;lt;those files&amp;gt;&amp;quot;&lt;/code&gt; before the next &lt;code&gt;make game-data&lt;/code&gt; keeps&#xA;them the same. Install it by name or from Walnut Games (&lt;code&gt;ps3-games-licensed&lt;/code&gt;, which pulled it in, is retired). A registered Quake needs the player&amp;rsquo;s own &lt;code&gt;id1/pak0.pak&lt;/code&gt; and &lt;code&gt;pak1.pak&lt;/code&gt; (the data guide on the&#xA;game&amp;rsquo;s page).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;how-it-performs&#34;&gt;How it performs&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bench (&lt;a href=&#34;../test-runs/#batch-2026-10-18-mesa-407-switches&#34;&gt;batch 2026-10-18-mesa-407-switches&lt;/a&gt;, the kicker on, same boot): steady 91.0, 1% low 48.6,&#xA;2.5 s of gameplay stalls (10 frames over 100 ms), longest 393 ms, 44 MB free at the lowest, 49 MB of&#xA;VRAM, 5 underruns. Mesa&amp;rsquo;s &lt;code&gt;NV30_TRANSLATE_LUT=1&lt;/code&gt; changed nothing in fps (90.9/91.0 against 91.0/90.8)&#xA;but saved about 3% of the CPU.&lt;/li&gt;&#xA;&lt;li&gt;Memory: 58 MB Rss, its 256 MB heap mapping 24.8 MB touched. The cache inside the heap never needs&#xA;flushing at this size, so sounds and models stay loaded; nothing to cut&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/MEMORY.md#findings-in-the-games-code&#34;&gt;MEMORY.md&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;How it got there: the first runs on 2026-10-17 gave 59.2 fps without GLSL, 64.8 with, 70.3 with the&#xA;gamma pass, colours right; Mesa ps3.262 took it from 70.5 to 78.6 (+11%, &lt;a href=&#34;../test-runs/#batch-2026-10-17-mesa-262&#34;&gt;batch 2026-10-17-mesa-262&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The recipe (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/quakespasm/benchmark/recipe.sh&#34;&gt;benchmark/recipe.sh&lt;/a&gt;) can&amp;rsquo;t use &lt;code&gt;+timedemo&lt;/code&gt; on the command line: the&#xA;shareware&amp;rsquo;s own quake.rc runs &lt;code&gt;startdemos demo1 demo2 demo3&lt;/code&gt; after the command line and the attract&#xA;loop replaces the timedemo, and the shareware refuses &lt;code&gt;-game&lt;/code&gt; directories. So a &lt;code&gt;quake.rc&lt;/code&gt; of ours in&#xA;&lt;code&gt;~/.quakespasm/id1&lt;/code&gt; loops the timedemo by frame count (&lt;code&gt;bench&lt;/code&gt; starts it and waits 1100 host frames;&#xA;demo1&amp;rsquo;s timedemo is 969 frames), since QuakeSpasm has no hook at a demo&amp;rsquo;s end: about 5 warm-up passes&#xA;of 13 s, then about 9 measured. A line starting with &lt;code&gt;-1 frames&lt;/code&gt; means a timedemo started before the&#xA;last one ended. Base keeps GLSL on with gamma at 1.0, so the full-screen gamma pass doesn&amp;rsquo;t run;&#xA;variants &lt;code&gt;noglsl&lt;/code&gt; and &lt;code&gt;glslgamma&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>QuakeSpasm: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/quakespasm/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/quakespasm/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Sauerbraten</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/</guid>
				<description>Cube 2: Sauerbraten, the 2020 Edition: a fast first person shooter with bots, over 200 maps and an in-game map editor.</description>
			</item>
			<item>
				<title>Sauerbraten: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;p&gt;Sauerbraten&amp;rsquo;s maps, textures, models, sounds and music are not part of the package: their licences are mixed&#xA;and much of it is Creative Commons non-commercial, so Walnut does not distribute them. They are free to&#xA;download from the game&amp;rsquo;s own site, and the steps unpack them where the launcher looks.&lt;/p&gt;&#xA;&lt;h3 id=&#34;which-edition-works&#34;&gt;Which edition works&lt;/h3&gt;&#xA;&lt;p&gt;The official 2020 Edition release for Linux, &lt;code&gt;sauerbraten_2020_12_29_linux.tar.bz2&lt;/code&gt;, from sauerbraten.org (the&#xA;download is hosted on SourceForge; the link in the steps on the Overview is the file&amp;rsquo;s address there). Its SHA-256 sum is in&#xA;step 3 of those steps. Debian&amp;rsquo;s &lt;code&gt;cube2-data&lt;/code&gt; is not this game: it holds the data of BananaBread, a different game on the same&#xA;engine.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sauerbraten: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Sauerbraten: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Sauerbraten: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/technical/</guid>
				<description>&lt;p&gt;The real game: Sauerbraten&amp;rsquo;s 2020 Edition release with its maps, models, sounds and music, on the same&#xA;&lt;a href=&#34;../../../engines/cube2/&#34;&gt;Cube 2 engine build&lt;/a&gt; that runs &lt;a href=&#34;../../bananabread/technical/&#34;&gt;BananaBread&lt;/a&gt;.&#xA;Debian&amp;rsquo;s &lt;code&gt;cube2&lt;/code&gt; is Sauerbraten&amp;rsquo;s own engine source, so no second engine package was made (building the&#xA;release&amp;rsquo;s source again would give the same program without the patches); what was missing was the&#xA;launcher and the data. It plays right, but its big maps fill the 250 MB of VRAM, and both played sessions&#xA;ended in a crash in Mesa when that happened. Those two crashes are fixed (Mesa 0046, then 0047 and 0048);&#xA;a session with all three is still to be played.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sauerbraten: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>ScummVM</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/scummvm/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/scummvm/</guid>
				<description>&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;scummvm&lt;/code&gt;, unpatched. It runs each of these games from its original data: the free ones from&#xA;Debian&amp;rsquo;s packages, the others from your own copy, which Walnut Games makes into a package. Every game&#xA;has its own menu entry that starts it directly, fullscreen, with the pad as the mouse; ScummVM&amp;rsquo;s own&#xA;launcher stays in the menu for everything else.&lt;/p&gt;&#xA;&lt;h2 id=&#34;technical-notes&#34;&gt;Technical notes&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s &lt;code&gt;scummvm&lt;/code&gt;, unpatched (2026.4.0+dfsg-1 on the PS3 in the smoke runs of 2026-10-29; 2026.1.0 before).&#xA;The licence is GPL-3.0-or-later: the sources&amp;rsquo; headers since ScummVM 2.7 (Debian&amp;rsquo;s copyright file still&#xA;says GPL-2+ for most files). Each game it runs is a GameDB entry of its own (the user, 2026-10-30: &amp;ldquo;we&#xA;don&amp;rsquo;t rate engines, we rate games&amp;rdquo;); the old &lt;code&gt;scummvm&lt;/code&gt; bundle is a draft that keeps ScummVM&amp;rsquo;s own&#xA;launcher and the smoke-test recipe.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SIGTERM hangs ioquake3; OpenAL&#39;s &#34;mmap commit error&#34; (2026-10-28)</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/ioquake3/investigations/sigterm-hang-and-openal-xruns/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/ioquake3/investigations/sigterm-hang-and-openal-xruns/</guid>
				<description>&lt;p&gt;Two problems seen in Quake III&amp;rsquo;s first runs on the PS3 (2026-10-27): ioquake3 hung for good after a&#xA;SIGTERM, and OpenAL logged &lt;code&gt;[ALSOFT] (EE) mmap commit error: Broken pipe&lt;/code&gt; during play. Tested on the&#xA;PS3 (kernel .472, Mesa ps3.924, openal-soft ps3.874) with OpenArena (opengl1 and opengl2) and Quake III&#xA;with its native game libraries, each started through &lt;code&gt;ps3-game&lt;/code&gt; on the desktop&amp;rsquo;s display with a map.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sigterm-the-shutdown-ran-inside-the-signal-handler&#34;&gt;SIGTERM: the shutdown ran inside the signal handler&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; With ioquake3 ps3.931 a SIGTERM after the map had loaded hung the game in 4 of 6 tries&#xA;(OpenArena 2 of 3, Quake III 2 of 3); the log stopped at &lt;code&gt;RE_Shutdown( 1 )&lt;/code&gt;, the last frame stayed on&#xA;the TV, and only SIGKILL ended it. A second SIGTERM did nothing.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Skeletal models skinned on the SPEs (2026-10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/spu-skinning/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/spu-skinning/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/SPU.md (&amp;ldquo;BananaBread&amp;rsquo;s skinning&amp;rdquo;), where libspeq&amp;rsquo;s skinning op stays&#xA;described. Measured in BananaBread; the patches are the Cube 2 engine&amp;rsquo;s.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The engine skins its skeletal models (players, the hud gun, monsters) either on the GPU (&lt;code&gt;gpuskel 1&lt;/code&gt;)&#xA;or on the CPU. GPU skinning runs on nv30 without a wedge but at 11 fps against 28 with CPU skinning:&#xA;nv30 turns the vertex program&amp;rsquo;s bone lookups into if/else trees. So cube2 0002 makes CPU skinning the&#xA;default and drops the GPU skinning shaders, and the skinning becomes PPE time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Square particles: nv30 ignored GL_POINT_SMOOTH (2026-10-26)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/point-smooth/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/point-smooth/</guid>
				<description>&lt;p&gt;Found in the played session of 2026-10-26; the driver mechanism of the fix, Mesa 0050, is in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DRIVER.md#the-mesa-side&#34;&gt;docs/DRIVER.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;In the session the player saw Quake II&amp;rsquo;s round particles (blood, sparks, bullet trails) drawn as&#xA;squares on the PS3, against round ones on the PC (the session&amp;rsquo;s review: &amp;ldquo;missing: ps3: round&#xA;particles &amp;hellip; draw as squares&amp;rdquo;).&lt;/p&gt;&#xA;&lt;h2 id=&#34;cause&#34;&gt;Cause&lt;/h2&gt;&#xA;&lt;p&gt;Yamagi Quake II&amp;rsquo;s GL1 renderer draws its particles as GL_POINTS with GL_POINT_SMOOTH. nv30 ignored&#xA;&lt;code&gt;point_smooth&lt;/code&gt;, and NV3x/NV4x have no known smoothing switch, so every point was a square.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Started from the Games menu, Luanti found no X (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/menu-freeze/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/luanti/investigations/menu-freeze/</guid>
				<description>&lt;p&gt;A start from the desktop&amp;rsquo;s Games menu on the PS3 that went wrong. The bug was game&#xA;mode&amp;rsquo;s, not Luanti&amp;rsquo;s; its fix (ps3-desktop 0.456, commit ba80992) is described in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DESKTOP.md#the-menu-freeze-2026-10-18-fixed-in-0456&#34;&gt;docs/DESKTOP.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;On the PS3, Luanti started from the Games menu found no video device and quit. About 10 s after the&#xA;click, X stopped answering other clients; killing jgmenu freed it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cause&#34;&gt;Cause&lt;/h2&gt;&#xA;&lt;p&gt;Game mode freezes the desktop&amp;rsquo;s programs (&lt;code&gt;ps3-desktop.slice&lt;/code&gt;) when a game starts. The freeze had&#xA;caught jgmenu, which stays running between uses, while it held its keyboard and pointer grab, so X&#xA;waited on a frozen client and Luanti&amp;rsquo;s connection to it got no answer.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SuperTuxKart</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/</guid>
				<description>A 3D kart racer with items, many tracks and a family-friendly cast.</description>
			</item>
			<item>
				<title>SuperTuxKart: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>SuperTuxKart: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>SuperTuxKart: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-26-session-0223/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-26-session-0223/</guid>
				<description></description>
			</item>
			<item>
				<title>SuperTuxKart: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-26-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/2026-10-26-session/</guid>
				<description></description>
			</item>
			<item>
				<title>SuperTuxKart: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/technical/</guid>
				<description>&lt;p&gt;SuperTuxKart 1.5 runs on its legacy GL 2.1 renderer with our big-endian fixes; without them the game quits&#xA;while loading its track models. It is the heaviest game we play: at the &lt;code&gt;lean&lt;/code&gt; settings, now the&#xA;package&amp;rsquo;s default for a fresh configuration, it races at 19-22 fps by the Gallium HUD in the benchmark,&#xA;and its played session on Mesa ps3.850 (2026-10-26) had a 24 fps median over five tracks with no crash&#xA;and no glitches. Light tracks play well, heavy ones (Ravenbridge Mansion) are slow, and a track&amp;rsquo;s load&#xA;takes about 20-30 s.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SuperTuxKart: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>SuperTuxKart: the &#34;Average FPS&#34; is a tick rate (2026-10-19)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/two-frame-rates/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/two-frame-rates/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The recipe read the game&amp;rsquo;s own &lt;code&gt;Number of frames: N time T, Average FPS: F&lt;/code&gt; line as the frame&#xA;rate: 105-111 fps for &lt;code&gt;lean&lt;/code&gt;, while the Gallium HUD said 19-22 and the race looked like 20.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; The number of frames was 21602 in every run. Patch 0005 counts &lt;code&gt;ProfileWorld::update&lt;/code&gt; calls,&#xA;one per physics tick, and STK steps physics at 120 Hz, so 180 s of race is 21600 ticks whatever the&#xA;renderer does. The HUD counts frames that reached the screen: 5436-5692 swaps in a 300 s run, 3.8-4.0&#xA;physics ticks per frame.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SuperTuxKart: the big-endian port and the VRAM (2026-10-16 to 10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/big-endian-port/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/supertuxkart/investigations/big-endian-port/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The research of 2026-10-16 had two warnings: the FAQ asks for at least 1 GB of RAM against our&#xA;217 MB, and Debian had an old powerpc colour bug (#714519). On 2026-10-17 Debian&amp;rsquo;s build stopped while&#xA;loading: its mesh loader refuses big-endian (e708512). Our +ps3.264 loaded, the karts rendered, the track&#xA;didn&amp;rsquo;t: VRAM exhausted (210 failed buffer allocations), the minimap FBO incomplete, a SIGSEGV at exit.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause and fix.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>The dark 3D view, the RSX&#39;s fragment TXB, and what came after (2026-10-20)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/dark-3d-view/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/dark-3d-view/</guid>
				<description>&lt;p&gt;The hardware fact this found is in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/RSX.md&#34;&gt;docs/RSX.md&lt;/a&gt; (the fragment program&amp;rsquo;s TXB&#xA;samples wrong whatever the bias), the driver&amp;rsquo;s answer, Mesa 0045, in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DRIVER.md#the-mesa-side&#34;&gt;docs/DRIVER.md&lt;/a&gt;. The earlier smoke runs of the same day&#xA;(the black textures from the stb_image_resize miscompile, the white-noise music) are in the game&amp;rsquo;s&#xA;technical page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The third smoke run (2026-10-20 13:43-13:49, warzone2100 ps3.619 with patches 0004-0008: the&#xA;stb_image_resize no-vectorize and the Opus byte order, Mesa ps3.545): the sound was right, and the user&#xA;heard plausible music and effects (white noise before; the card fine, 9 recovered xruns), but the&#xA;picture was still wrong: the loading bar broken, the 3D view dark (terrain black, structures flat and&#xA;untextured). The UI was fine. qemu ppc64 rendered the same build correctly, so it was RSX-specific.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Secret of Monkey Island</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/</guid>
				<description>Lucasfilm Games&amp;rsquo; 1990 pirate comedy: Guybrush Threepwood wants to be a pirate and ends up chasing the ghost LeChuck. Played with ScummVM from your own copy.</description>
			</item>
			<item>
				<title>The Secret of Monkey Island: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;</description>
			</item>
			<item>
				<title>The Secret of Monkey Island: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Untested: published so that Walnut Games can set up its data; nobody has played a session of it on&#xA;Walnut yet. Runs on ScummVM (&lt;a href=&#34;../../../engines/scummvm/&#34;&gt;the engine&lt;/a&gt;, Debian&amp;rsquo;s package).&lt;/p&gt;&#xA;&lt;p&gt;Smoke run 2026-10-29 (&lt;code&gt;ps3-bench-20261029T023324Z-smoke-scummvm-monkey&lt;/code&gt;, variant &lt;code&gt;monkey&lt;/code&gt;): the &amp;ldquo;Parte&#xA;Uno&amp;rdquo; title, then Guybrush on the dock at night with the verbs, colours right.&lt;/p&gt;&#xA;&lt;p&gt;The player&amp;rsquo;s copy is the Spanish VGA floppy release (eight disks; ScummVM: &amp;ldquo;monkey&amp;rdquo;, VGA, ES; &lt;code&gt;000.LFL&lt;/code&gt;&#xA;sha256 &lt;code&gt;4b24ef06...dfd9fc&lt;/code&gt;). Debian&amp;rsquo;s game-data-packager doesn&amp;rsquo;t know it; ours does&#xA;(&lt;code&gt;secret-of-monkey-island-floppy-es-data&lt;/code&gt;, patch 0016, from the copy&amp;rsquo;s sizes and checksums; its&#xA;901-904.LFL are the German floppy&amp;rsquo;s).&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Secret of Monkey Island: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/the-secret-of-monkey-island/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>The water&#39;s occlusion query: the frame waits for the GPU (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/water-query-wait/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/water-query-wait/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/HOTPATHS.md (Target 5, &amp;ldquo;BananaBread&amp;rsquo;s 62.8%&amp;rdquo;, the third round and&#xA;&amp;ldquo;Measured on the PS3&amp;rdquo;). Found in BananaBread&amp;rsquo;s benchmark demo (map cave); the code is the Cube 2&#xA;engine&amp;rsquo;s, so cube2 0010 serves Sauerbraten too. The driver side, Mesa 0035 &lt;code&gt;NV30_QUERY_WAIT&lt;/code&gt; and&#xA;0042 &lt;code&gt;NV30_QUERY_KICK&lt;/code&gt;, is described in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/HOTPATHS.md#target-5-the-query-result-wait-mesa-0035&#34;&gt;docs/HOTPATHS.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The first profiling batch (2026-10-18, Mesa ps3.299) put 10.3% of BananaBread&amp;rsquo;s CPU in&#xA;&lt;code&gt;nv30_query_result&lt;/code&gt;, Mesa&amp;rsquo;s busy loop waiting for a query result; no other game of the nine had it.&#xA;On the SSD root (batch ssdroot2 P1b, Mesa ps3.476, 2026-10-19) it was 17.4% of the game&amp;rsquo;s CPU, the&#xA;second biggest hot path after the vertex conversion (&lt;a href=&#34;../byte-normals/&#34;&gt;byte-normals&lt;/a&gt;),&#xA;and the start-up profiles of batch 17 found the same spin in the warm-up (&lt;code&gt;nv30_query_result&lt;/code&gt; 13.1 s).&lt;/p&gt;</description>
			</item>
			<item>
				<title>The world&#39;s normals as signed bytes: a vertex conversion at every draw (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/byte-normals/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/engines/cube2/investigations/byte-normals/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/HOTPATHS.md (Target 1, &amp;ldquo;BananaBread&amp;rsquo;s 62.8%&amp;rdquo;) and docs/MEMORY.md&#xA;(&amp;ldquo;BananaBread&amp;rsquo;s world normals as shorts&amp;rdquo;). Found in BananaBread&amp;rsquo;s benchmark demo (map cave); the&#xA;vertex layout is the Cube 2 engine&amp;rsquo;s (&lt;code&gt;engine/world.h&lt;/code&gt;), so Sauerbraten&amp;rsquo;s world has it too. The driver&#xA;side, Mesa 0033&amp;rsquo;s translate table and 0043&amp;rsquo;s vertex-program normalisation, is in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/HOTPATHS.md#target-1-the-snorm8-vertex-conversion-mesa-0033&#34;&gt;docs/HOTPATHS.md&lt;/a&gt;;&#xA;the system-memory copies it causes are Mesa 0037&amp;rsquo;s subject in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/MEMORY.md&#34;&gt;docs/MEMORY.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The first profiling batch (2026-10-18 early morning, Mesa ps3.299) had BananaBread at 22 fps with&#xA;72% of its CPU in Mesa, 44.9% of it in vertex format translation: &lt;code&gt;util_format_r8g8b8a8_snorm_unpack_rgba_float&lt;/code&gt;&#xA;18.2%, &lt;code&gt;util_format_r8g8b8_snorm_unpack_rgba_float&lt;/code&gt; 16.4%, the translate loop &lt;code&gt;generic_run&lt;/code&gt; around them.&#xA;On the SSD root (batch ssdroot2 P1b, 2026-10-19, Mesa ps3.476 with 0033&amp;rsquo;s table on) it was 40 fps&#xA;with Mesa at 62.8% of the game&amp;rsquo;s CPU: vertex format translation 18.3, the query wait 17.4&#xA;(&lt;a href=&#34;../water-query-wait/&#34;&gt;water-query-wait&lt;/a&gt;), per-draw state 13.8, submission 6.9, nv30&#xA;validation 3.8, buffer allocation 3.4, the rest 13.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Theme: family</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/family/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/family/</guid>
				<description></description>
			</item>
			<item>
				<title>Theme: fantasy</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/fantasy/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/fantasy/</guid>
				<description></description>
			</item>
			<item>
				<title>Theme: horror</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/horror/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/horror/</guid>
				<description></description>
			</item>
			<item>
				<title>Theme: sci-fi</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/sci-fi/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/sci-fi/</guid>
				<description></description>
			</item>
			<item>
				<title>Trigger Rally</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/</guid>
				<description>A 3D rally racing game: drive a rally car over dirt tracks against the clock.</description>
			</item>
			<item>
				<title>Trigger Rally: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Trigger Rally: session of 2026-10-29</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/test-runs/2026-10-29-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/test-runs/2026-10-29-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Trigger Rally: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/technical/</guid>
				<description>&lt;h2 id=&#34;status&#34;&gt;Status&lt;/h2&gt;&#xA;&lt;p&gt;Debian&amp;rsquo;s Trigger Rally 0.6.6.1 (&lt;code&gt;trigger-rally&lt;/code&gt;, &lt;code&gt;-data&lt;/code&gt;, 116 MB). Smoke runs on 2026-10-28 (kernel .874, Mesa&#xA;ps3.924, the VRAM swap on): the menus are mouse-only (Return and the arrows do nothing there), so the recipe&#xA;(&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/trigger-rally/benchmark/recipe.sh&#34;&gt;benchmark/recipe.sh&lt;/a&gt;) clicks through them by XTEST (&lt;code&gt;xkeys.py @X,Y&lt;/code&gt;): single race,&#xA;Aegyptian, race, the car (Return), then holds the throttle a few times. The race runs, the picture right&#xA;(desert, sky, the car, the HUD, the offroad sign; xwd and webcam):&lt;/p&gt;</description>
			</item>
			<item>
				<title>Trigger Rally: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/trigger-rally/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Two crashes in Mesa: a query&#39;s report slot taken back, then a NULL upload buffer (2026-10-24)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/investigations/online-crashes/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/sauerbraten/investigations/online-crashes/</guid>
				<description>&lt;p&gt;The real Sauerbraten (our cube2 on the 2020_12_29 release&amp;rsquo;s data) crashed in both of its first played&#xA;sessions, each time in Mesa&amp;rsquo;s nv30 driver. The fixes are Mesa 0046, 0047 and 0048, whose mechanisms&#xA;are in &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/DRIVER.md#the-mesa-side&#34;&gt;docs/DRIVER.md&lt;/a&gt;; upstream nv30 has the same code.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Session of 2026-10-24 (an online insta-CTF match on eternal_valley, then berlin_wall; run&#xA;&lt;code&gt;ps3-bench-20261024T233328Z-session-sauerbraten-edition-base&lt;/code&gt;): 54 fps median, 14.7 s of stutter a&#xA;minute, a segfault after 202 s of play. Occlusion-culled geometry popped (the player&amp;rsquo;s &amp;ldquo;a bit&#xA;glitchy&amp;rdquo;).&lt;/li&gt;&#xA;&lt;li&gt;Session of 2026-10-25 (bots, about 6 minutes, Mesa ps3.819 with 0046, sauerbraten 0.819; run&#xA;&lt;code&gt;ps3-bench-20261025T013202Z-session-sauerbraten-edition-base&lt;/code&gt;): no query crash; a different one at&#xA;400 s.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;evidence-and-cause-the-first-crash-mesa-0046&#34;&gt;Evidence and cause: the first crash (Mesa 0046)&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;nip&lt;/code&gt; resolves (stable-debug&amp;rsquo;s &lt;code&gt;mesa-libgallium-dbgsym&lt;/code&gt; ps3.721) to &lt;code&gt;nouveau_heap_free&lt;/code&gt;&#xA;(nouveau_heap.c:106, &lt;code&gt;r-&amp;gt;in_use = 0&lt;/code&gt;), called from &lt;code&gt;nv30_query_object_del&lt;/code&gt; (nv30_query.c:76). The heap&#xA;node it wrote was &lt;code&gt;nouveau_mm_free_work&lt;/code&gt;&amp;rsquo;s function descriptor in libgallium&amp;rsquo;s read-only &lt;code&gt;.opd&lt;/code&gt;: the&#xA;query object had been freed and its memory reused for a fence work. nv30 has 124 report slots; the&#xA;engine ends up to 2048 occlusion queries a frame and reads them a frame later, so slots were taken&#xA;back from queries that still pointed at them: the query&amp;rsquo;s next result check read freed memory and&#xA;freed it again. The same bug gave queries each other&amp;rsquo;s results, which shows as geometry popping.&lt;/p&gt;</description>
			</item>
			<item>
				<title>View: 2D</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/2d/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/2d/</guid>
				<description></description>
			</item>
			<item>
				<title>View: 3D</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/3d/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/3d/</guid>
				<description></description>
			</item>
			<item>
				<title>View: first-person</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/first-person/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/first-person/</guid>
				<description></description>
			</item>
			<item>
				<title>View: side-on</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/side-on/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/side-on/</guid>
				<description></description>
			</item>
			<item>
				<title>View: top-down</title>
				<link>https://walnut.nanobyte.dev/gamedb/tags/top-down/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/tags/top-down/</guid>
				<description></description>
			</item>
			<item>
				<title>Warzone 2100</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/</guid>
				<description>A 3D real-time strategy game: build a base, research technology, command tanks.</description>
			</item>
			<item>
				<title>Warzone 2100: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>Warzone 2100: session of 2026-10-25</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/test-runs/2026-10-25-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/test-runs/2026-10-25-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Warzone 2100: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/technical/</guid>
				<description>&lt;p&gt;Warzone 2100 4.3.5, the last release with a GL 2.1 renderer, is our package, and it runs on the PS3 with the&#xA;right picture and sound after a set of big-endian, AltiVec and driver fixes. Its played session&#xA;(2026-10-25, a skirmish) had a 38 fps median and 5.4 s of stutter a minute. As a console game it is a poor&#xA;fit: mouse and keyboard only, a sparse 1999 interface, small at 1080p (Options &amp;gt; Video &amp;gt; Display Scale&#xA;helps). Stable &lt;code&gt;warzone2100&lt;/code&gt; 4.3.5-1+ps3.644; the user played it next to the PC build on 2026-10-20.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Warzone 2100: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>Warzone 2100: the black 3D view, etcpak and a GCC miscompile (2026-10-19/20)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/black-3d-view/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/black-3d-view/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The first PS3 smoke run (batch ssdroot6, warzone2100 ps3.566, 2026-10-19) had the HUD and the&#xA;minimap but a black 3D view, and garbled text.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; The amd64 build on llvmpipe, cut down to the PS3&amp;rsquo;s GL 2.1 extension list&#xA;(&lt;code&gt;MESA_GL_VERSION_OVERRIDE=2.1&lt;/code&gt;, &lt;code&gt;MESA_GLSL_VERSION_OVERRIDE=120&lt;/code&gt;, &lt;code&gt;MESA_EXTENSION_OVERRIDE&lt;/code&gt; minus&#xA;everything nv47 lacks, ARB_texture_rg, ARB_texture_float and EXT_texture_array among them), rendered the&#xA;skirmish normally: not a GL 2.1 limit. The ppc64 build under qemu-user with llvmpipe and with softpipe was&#xA;black, as on the PS3. Shader overrides as an autoload mod showed the lightmap (fog of war) right and the&#xA;textures black; logging each texture upload against the amd64 run showed level 0 identical and level 1&#xA;down from 103538663 to 465002 (the byte sum of a 512x512 level). The game&amp;rsquo;s compiled&#xA;&lt;code&gt;stb_image_resize.cpp.o&lt;/code&gt; reproduced it on its own; it takes &lt;code&gt;-mcpu=cell&lt;/code&gt; (or 970, power6: AltiVec), &lt;code&gt;-O3&lt;/code&gt;&#xA;and &lt;code&gt;-DNDEBUG&lt;/code&gt; together.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Warzone 2100: the music was white noise (2026-10-20)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/opus-white-noise/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/warzone2100/investigations/opus-white-noise/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The second PS3 smoke run (ps3.617, stopped at 110 s) played white noise for the music.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt; Checked under qemu with OpenAL Soft&amp;rsquo;s wave writer at the main menu: a zero-crossing rate of&#xA;0.44 with ps3.617 (noise). The decode itself was right on big-endian: track19.opus through the game&amp;rsquo;s&#xA;opusfile, built with its flags, matches amd64 within 8 LSB. The Vorbis effects already asked &lt;code&gt;ov_read&lt;/code&gt; for&#xA;big-endian.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; The Opus decoder (the soundtrack, warzone2100-music) wrote its samples little-endian, but&#xA;OpenAL&amp;rsquo;s &lt;code&gt;AL_FORMAT_*16&lt;/code&gt; expects native order.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What stalls in OpenArena: map reloads, bots joining and the lost decrementer (2026-10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/reload-stalls/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/openarena/investigations/reload-stalls/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/STALLS.md (&amp;ldquo;OpenArena&amp;rdquo;) and docs/TESTS.md&amp;rsquo;s history rows, merged. The&#xA;stall recorder, report.py&amp;rsquo;s gameplay-only columns (which OpenArena&amp;rsquo;s reloads led to) and the kernel&amp;rsquo;s&#xA;lost decrementer, a cause outside the game that OpenArena showed first, stay described in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/docs/STALLS.md#why-frames-stalled-the-lost-decrementer&#34;&gt;docs/STALLS.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The first stall-recorder runs (ioquake3 ps3.379, the timedemo looped, 20261017T233701Z and T234549Z)&#xA;had 17.6-17.9 s of stall time in the window, 81% of it on the main thread&amp;rsquo;s CPU.&lt;/p&gt;&#xA;&lt;h2 id=&#34;evidence&#34;&gt;Evidence&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;passsplit.py&lt;/code&gt; splits it by where it falls in a pass:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows PC classics (1990-2010) with open engines</title>
				<link>https://walnut.nanobyte.dev/gamedb/research/pc-classics/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/research/pc-classics/</guid>
				<description>&lt;p&gt;Popular PC games of 1990-2010 that now have an open-source engine, a decompilation, a reimplementation&#xA;or an official source release, as candidates for the PS3. Researched 2026-10-20 from the projects&#39;&#xA;READMEs, osgameclones.com, PCGamingWiki, the awesome-unofficial-pc-ports list, GamingOnLinux and news&#xA;articles. Nothing here has been built or measured on our console yet. Every alternative project per game,&#xA;with GitHub stars, last activity and the pick for our port, is in&#xA;&lt;a href=&#34;#alternatives-and-popularity&#34;&gt;Alternatives and popularity&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>X-Moto</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/</guid>
				<description>A 2D motorbike trials game: ride through physics-based levels without falling off, collecting strawberries.</description>
			</item>
			<item>
				<title>X-Moto: game-side batching beat the driver rounds (2026-10-17)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/investigations/game-side-batching/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/investigations/game-side-batching/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; X-Moto, a 2D game, played at 35-47 fps: a GL 1.x game held back by the PPE. The Mesa rounds&#xA;moved it a little each: ps3.246 35 to 37 (HUD median, underruns 208 to 126), ps3.262 39 to 47 (+21%,&#xA;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-262&#34;&gt;batch 2026-10-17-mesa-262&lt;/a&gt;), and ps3.299 cost 5% against ps3.282 in the same boot (44.5 against 47.0;&#xA;neither 0027 nor 0030 off restored it, 0031 off and 0028 off gave 46 each,&#xA;&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-282-ab&#34;&gt;batch 2026-10-17-mesa-282-ab&lt;/a&gt;). A fixed &lt;code&gt;kick100&lt;/code&gt; cost 9% (&lt;a href=&#34;../../test-runs/#batch-2026-10-17-mesa-282-kick100&#34;&gt;batch 2026-10-17-mesa-282-kick100&lt;/a&gt;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>X-Moto: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/guides/</guid>
				<description></description>
			</item>
			<item>
				<title>X-Moto: session of 2026-10-23</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-23-session-2225/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-23-session-2225/</guid>
				<description></description>
			</item>
			<item>
				<title>X-Moto: session of 2026-10-23</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-23-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-23-session/</guid>
				<description></description>
			</item>
			<item>
				<title>X-Moto: session of 2026-10-24</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-24-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/2026-10-24-session/</guid>
				<description></description>
			</item>
			<item>
				<title>X-Moto: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/technical/</guid>
				<description>&lt;p&gt;X-Moto 0.6.3 runs at 1920x1080 with the right picture and sound. Our package batches the game&amp;rsquo;s OpenGL&#xA;drawing (a frame went from 18,500 GL calls to 165), which took the benchmark replay from 44.5 to about 160&#xA;fps; its played sessions ran at the 60 fps vsync cap with clean sound (&amp;ldquo;flawless&amp;rdquo;, the player). It is one&#xA;of the games where game-side batching paid most.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-and-patches&#34;&gt;Packages and patches&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;xmoto&lt;/code&gt;, &lt;code&gt;xmoto-data&lt;/code&gt; (&lt;code&gt;0.6.3+repack-1+ps3.N&lt;/code&gt;, &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/xmoto/packages/xmoto&#34;&gt;packages/xmoto&lt;/a&gt;), replacing Debian&amp;rsquo;s.&lt;/p&gt;</description>
			</item>
			<item>
				<title>X-Moto: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/test-runs/</guid>
				<description></description>
			</item>
			<item>
				<title>X-Moto&#39;s batches copied at every draw (2026-10-18)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/xmoto/investigations/client-array-copies/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/xmoto/investigations/client-array-copies/</guid>
				<description>&lt;p&gt;Moved on 2026-10-26 from docs/HOTPATHS.md (&amp;ldquo;X-Moto&amp;rsquo;s client arrays&amp;rdquo; and the &amp;ldquo;Measured on the PS3&amp;rdquo;&#xA;rows), where Mesa&amp;rsquo;s side of client vertex arrays stays.&lt;/p&gt;&#xA;&lt;h2 id=&#34;symptom&#34;&gt;Symptom&lt;/h2&gt;&#xA;&lt;p&gt;The first profiling batch (2026-10-18, Mesa ps3.299) put 5.5% of X-Moto&amp;rsquo;s CPU (profile 013240, the&#xA;credits replay at 154 fps) in &lt;code&gt;u_upload_data&lt;/code&gt;, Mesa&amp;rsquo;s copy of client vertex arrays: memcpy &amp;lt;&#xA;&lt;code&gt;u_upload_data&lt;/code&gt; 5.3%, the biggest single X-Moto item in the graphics stack.&lt;/p&gt;&#xA;&lt;h2 id=&#34;evidence&#34;&gt;Evidence&lt;/h2&gt;&#xA;&lt;p&gt;All of it is xmoto&amp;rsquo;s own batches (patch 0001 batches DrawLib&amp;rsquo;s primitives per state run), drawn from a&#xA;client array that Mesa copies at every draw. 3.9 of the 5.5% is the minimap: &lt;code&gt;renderMiniMap &amp;gt; drawCircle&lt;/code&gt;, a circle of 8 segments per sprite entity in the minimap&amp;rsquo;s box (933 a frame in the credits&#xA;replay, ~17000 batch vertices). The copy goes into GART, which ps3rsx maps cacheable (ordinary RAM,&#xA;IOMMU-coherent).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Yamagi Quake II</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/</guid>
				<description>A modernised engine for id Software&amp;rsquo;s Quake II, with the original single player and multiplayer game.</description>
			</item>
			<item>
				<title>Yamagi Quake II: guides</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/guides/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/guides/</guid>
				<description>&lt;h2 id=&#34;game-data&#34;&gt;Setting up the game data&lt;/h2&gt;&#xA;&lt;h3 id=&#34;which-editions-work&#34;&gt;Which editions work&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The demo&lt;/strong&gt; (free): version 3.14, downloaded by game-data-packager itself (no copy or installer needed). Package &lt;code&gt;quake2-demo-data&lt;/code&gt;; the Quake II (demo) menu entry starts it and shows only while the demo is installed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The full game&lt;/strong&gt;: package &lt;code&gt;quake2-full-data&lt;/code&gt;. It needs &lt;code&gt;baseq2/pak0.pak&lt;/code&gt; and the &lt;code&gt;baseq2/video&lt;/code&gt; folder of your copy: a CD, a Steam &lt;code&gt;common/Quake 2&lt;/code&gt; folder, or GOG&amp;rsquo;s Quake II Quad Damage (the installed folder or &lt;code&gt;setup_quake2_quad_damage_*.exe&lt;/code&gt;). The import downloads the 3.20 patch (the official patch files) unless the copy already has it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The CD&amp;rsquo;s music&lt;/strong&gt;: package &lt;code&gt;quake2-music&lt;/code&gt;, optional, in &lt;code&gt;/usr/share/games/quake2/baseq2/music/02.ogg&lt;/code&gt;..&lt;code&gt;11.ogg&lt;/code&gt;, which Yamagi Quake II plays in place of the CD; from a BIN/CUE image of the CD or the disc in the drive. The 3.20 patch download is allowed only when every package asked for may download, so the full game and its music are two imports: &lt;code&gt;walnut-data import -p quake2-full-data yquake2 /path/to/Quake2.cue&lt;/code&gt;, then &lt;code&gt;walnut-data import -p quake2-music yquake2 /path/to/Quake2.cue&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;The expansions (&lt;code&gt;quake2-reckoning-data&lt;/code&gt;, &lt;code&gt;quake2-groundzero-data&lt;/code&gt;, &lt;code&gt;quake2-zaero-data&lt;/code&gt;) are packages of the same tool; they have not been tried on the PS3.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;what-you-get&#34;&gt;What you get&lt;/h3&gt;&#xA;&lt;p&gt;The demo is installed in &lt;code&gt;/usr/share/games/quake2-demo/baseq2&lt;/code&gt; and the full game in &lt;code&gt;/usr/share/games/quake2/baseq2&lt;/code&gt;; the two use different folders. The Quake II (demo) entry passes &lt;code&gt;-datadir /usr/share/games/quake2-demo&lt;/code&gt;, and the Quake II entry (shown once &lt;code&gt;baseq2/pak0.pak&lt;/code&gt; is there) passes &lt;code&gt;-datadir /usr/share/games/quake2&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Yamagi Quake II: OpenAL played white noise (2026-10-16)</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/openal-white-noise/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/investigations/openal-white-noise/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Symptom.&lt;/strong&gt; The first runs of our ppc64 build (+ps3.229) drew right, but every sound effect was loud&#xA;white noise (&lt;a href=&#34;../../test-runs/#batch-2026-10-16-yquake2-white-noise&#34;&gt;batch 2026-10-16-yquake2-white-noise&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Cause.&lt;/strong&gt; The game loads its 16-bit WAV samples as they are in the file, little-endian, and hands them&#xA;to OpenAL as &lt;code&gt;AL_FORMAT_*16&lt;/code&gt;, which means native byte order: on a big-endian host every sample had its&#xA;bytes swapped.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fix.&lt;/strong&gt; Patch 0001 swaps the 16-bit samples to host byte order at load (+ps3.240,&#xA;&lt;a href=&#34;../../test-runs/#batch-2026-10-16-yquake2-byteswap&#34;&gt;batch 2026-10-16-yquake2-byteswap&lt;/a&gt;). The user confirmed the sound by ear. The SDL audio path&#xA;(&lt;code&gt;s_openal 0&lt;/code&gt;, variant &lt;code&gt;sdlsound&lt;/code&gt;) is a second way to the card, kept as a variant.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Yamagi Quake II: session of 2026-10-26</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/test-runs/2026-10-26-session/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/test-runs/2026-10-26-session/</guid>
				<description></description>
			</item>
			<item>
				<title>Yamagi Quake II: technical notes</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/technical/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/technical/</guid>
				<description>&lt;p&gt;Our build of Debian&amp;rsquo;s &lt;code&gt;yquake2&lt;/code&gt; 8.70 on its gl1 renderer, with the Quake II demo data. It plays the demo&#xA;pak&amp;rsquo;s timedemo at 68.7 steady fps with almost no stalls (&lt;a href=&#34;../test-runs/#batch-2026-10-18-mesa-407-lut&#34;&gt;batch 2026-10-18-mesa-407-lut&lt;/a&gt;) since its&#xA;random-number table shrank from 32 MB to 64 KB, and its played session had a 60 fps median, a 1% low of&#xA;33, no dropouts and no crash.&lt;/p&gt;&#xA;&lt;h2 id=&#34;packages-data-and-settings&#34;&gt;Packages, data and settings&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;yamagi-quake2&lt;/code&gt;, &lt;code&gt;yamagi-quake2-core&lt;/code&gt; (&lt;code&gt;/usr/lib/yamagi-quake2/quake2&lt;/code&gt;, renderers &lt;code&gt;ref_gl1&lt;/code&gt; and&#xA;&lt;code&gt;ref_gl3&lt;/code&gt;), &lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/yquake2/packages/yquake2&#34;&gt;packages/yquake2&lt;/a&gt;, &lt;code&gt;COMPONENT=contrib&lt;/code&gt;: debian-ports builds nothing&#xA;arch-specific in contrib, so Debian has no ppc64 binary. The gl1 renderer (GL 1.4 fixed function) is&#xA;the one that runs; gl3 and gles3 need GL 3.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/yquake2/packages/yquake2/patches/0001-Sound-swap-16-bit-WAV-samples-to-host-byte-order-on-.patch&#34;&gt;0001&lt;/a&gt;&#xA;swaps the 16-bit WAV samples to host byte order at load: uploaded little-endian, they played as white&#xA;noise through OpenAL (&lt;a href=&#34;../investigations/openal-white-noise/&#34;&gt;the investigation&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/yquake2/packages/yquake2/patches/0002-KISS-PRNG-lag-table-size-from-YQ2_KISS_QSIZE-default.patch&#34;&gt;0002&lt;/a&gt;&#xA;&lt;code&gt;YQ2_KISS_QSIZE&lt;/code&gt;: the KISS PRNG&amp;rsquo;s lag table, allocated at first use with 4096 entries by default&#xA;instead of a static 16 MiB array in both &lt;code&gt;quake2&lt;/code&gt; and &lt;code&gt;game.so&lt;/code&gt;&#xA;(&lt;a href=&#34;../investigations/prng-table/&#34;&gt;the investigation&lt;/a&gt;). Its upstream offer is drafted in&#xA;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/yquake2/upstream.md&#34;&gt;upstream.md&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/yquake2/packages/yquake2/patches/0003-yq2.cfg-W-A-S-D-and-a-game-controller-s-buttons-by-d.patch&#34;&gt;0003&lt;/a&gt;&#xA;the default bindings (&lt;code&gt;yq2.cfg&lt;/code&gt;, run after id&amp;rsquo;s &lt;code&gt;default.cfg&lt;/code&gt; and before the player&amp;rsquo;s &lt;code&gt;config.cfg&lt;/code&gt;):&#xA;W/A/S/D instead of Yamagi&amp;rsquo;s E/S/D/F (the power shield from W to E), and a game controller&amp;rsquo;s buttons,&#xA;which Yamagi left unbound (the sticks moved and looked, nothing fired): R2 fires, L2 walks, Cross&#xA;jumps, Circle crouches, L1/R1 the previous/next weapon, Square uses the item, Triangle the inventory,&#xA;the D-pad left/right selects an item, up the help computer, down drops the item, Select the score;&#xA;Start is the menu already. A saved &lt;code&gt;config.cfg&lt;/code&gt; keeps its own bindings (Yamagi writes them all), so a&#xA;home that has played keeps E/S/D/F until Options, Customize controls, &amp;ldquo;reset to defaults&amp;rdquo;. Checked on&#xA;the PS3 (2026-10-29, a fresh home): the config.cfg the game writes has &lt;code&gt;bind w &amp;quot;+forward&amp;quot;&lt;/code&gt;,&#xA;&lt;code&gt;bind e &amp;quot;use power shield&amp;quot;&lt;/code&gt;, &lt;code&gt;bind BTN_SOUTH &amp;quot;+moveup&amp;quot;&lt;/code&gt;, &lt;code&gt;bind TRIG_RIGHT &amp;quot;+attack&amp;quot;&lt;/code&gt;; the pad by hand is&#xA;for a played session.&lt;/li&gt;&#xA;&lt;li&gt;Two menu entries of ours (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/tree/main/gamedb/games/yquake2/desktop/launchers&#34;&gt;desktop/launchers&lt;/a&gt;), the gl1 renderer fullscreen at the&#xA;desktop&amp;rsquo;s resolution (&lt;code&gt;r_mode -2&lt;/code&gt;): &amp;ldquo;Quake II (demo)&amp;rdquo;, &lt;code&gt;-datadir /usr/share/games/quake2-demo&lt;/code&gt;, and&#xA;&amp;ldquo;Quake II&amp;rdquo;, the full game, &lt;code&gt;-datadir /usr/share/games/quake2&lt;/code&gt;. Both are packed hidden (&lt;code&gt;NoDisplay=true&lt;/code&gt;)&#xA;with &lt;code&gt;X-Walnut-Requires=&lt;/code&gt; their data&amp;rsquo;s &lt;code&gt;baseq2/pak0.pak&lt;/code&gt; (&lt;code&gt;/usr/share/games/quake2-demo/...&lt;/code&gt;,&#xA;&lt;code&gt;/usr/share/games/quake2/...&lt;/code&gt;): ps3-game-menu shows each only when that file exists. The full game&amp;rsquo;s data is game-data-packager&amp;rsquo;s &lt;code&gt;quake2-full-data&lt;/code&gt; (build.toml &lt;code&gt;[data_setup]&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The data&lt;/strong&gt; (licensed): &lt;code&gt;quake2-demo-data&lt;/code&gt; (&lt;code&gt;/usr/share/games/quake2-demo/baseq2/&lt;/code&gt;, the demo&amp;rsquo;s&#xA;&lt;code&gt;baseq2&lt;/code&gt; with &lt;code&gt;demos/q2demo1.dm2&lt;/code&gt; in its pak), built once with game-data-packager 89 (&lt;code&gt;make game-data&lt;/code&gt;,&#xA;the demo archive downloaded from id&amp;rsquo;s mirrors and kept in &lt;code&gt;build/downloads/game-data&lt;/code&gt;) as&#xA;&lt;code&gt;quake2-demo-data_89_all.deb&lt;/code&gt;, Section &lt;code&gt;local/games&lt;/code&gt;, and published once to the licensed suite. Quake&#xA;II&amp;rsquo;s demo may not be redistributed at all. game-data-packager&amp;rsquo;s output isn&amp;rsquo;t reproducible: the version&#xA;89 file the LAN repository published is in the retirement backup&amp;rsquo;s &lt;code&gt;ps3-licensed-debs/&lt;/code&gt;, and &lt;code&gt;make publish DEBS=&amp;quot;&amp;lt;that file&amp;gt;&amp;quot;&lt;/code&gt; before the next &lt;code&gt;make game-data&lt;/code&gt; keeps it the same. The full game needs the&#xA;player&amp;rsquo;s own Quake II data (the data guide on the game&amp;rsquo;s page).&lt;/li&gt;&#xA;&lt;li&gt;The config lives in &lt;code&gt;~/.local/share/YamagiQ2/baseq2/config.cfg&lt;/code&gt; (&lt;code&gt;~/.yq2&lt;/code&gt; before the XDG build).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;how-it-performs&#34;&gt;How it performs&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bench (&lt;a href=&#34;../test-runs/#batch-2026-10-18-mesa-407-lut&#34;&gt;batch 2026-10-18-mesa-407-lut&lt;/a&gt;, same boot, x2): &lt;code&gt;kiss4k&lt;/code&gt; (now the default) against the old&#xA;table: RSS 125 to 56 MB, swap used 80 to 9 MB, gameplay stalls 22.6 to 0.05 s, longest frame 4.5 s to&#xA;91 ms, steady 65.7 to 68.7, 1% low 20.1 to 31.1, 46 MB free at the lowest (12 before), 48 MB of VRAM,&#xA;no underruns.&lt;/li&gt;&#xA;&lt;li&gt;How it got there: first runs on 2026-10-17 gave 56.1 fps with OpenAL, 58.4 with SDL audio; Mesa ps3.246&#xA;51.4, ps3.262 63.9 (+14-24%, &lt;a href=&#34;../test-runs/#batch-2026-10-17-mesa-262&#34;&gt;batch 2026-10-17-mesa-262&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The recipe (&lt;a href=&#34;https://github.com/nanobyte-dev/walnut-linux/blob/main/gamedb/games/yquake2/benchmark/recipe.sh&#34;&gt;benchmark/recipe.sh&lt;/a&gt;) runs the engine directly (Debian&amp;rsquo;s &lt;code&gt;quake2&lt;/code&gt;&#xA;wrapper is contrib, not ours) on the demo pak&amp;rsquo;s only demo, &lt;code&gt;+timedemo 1 +demomap q2demo1.dm2&lt;/code&gt;, vsync&#xA;off. The timedemo repeats in one session: autoexec.cfg&amp;rsquo;s &lt;code&gt;bench&lt;/code&gt; alias sets &lt;code&gt;nextdemo&lt;/code&gt; again,&#xA;disconnects (which prints the pass&amp;rsquo;s line; a chained demomap would reconnect and clear the counters) and&#xA;starts the demo cold. Each pass also prints &amp;ldquo;ERROR: Disconnected from server&amp;rdquo;. Variants: &lt;code&gt;sdlsound&lt;/code&gt;,&#xA;&lt;code&gt;kissbig&lt;/code&gt;, &lt;code&gt;kiss4k&lt;/code&gt;, the OpenAL Soft variants.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Yamagi Quake II: test runs</title>
				<link>https://walnut.nanobyte.dev/gamedb/games/yquake2/test-runs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://walnut.nanobyte.dev/gamedb/games/yquake2/test-runs/</guid>
				<description></description>
			</item>
	</channel>
</rss>
