<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Destiny 1 on Sunrise</title><link>https://projectsunrise.dev/docs/destiny-1/</link><description>Recent content in Destiny 1 on Sunrise</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 15 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://projectsunrise.dev/docs/destiny-1/index.xml" rel="self" type="application/rss+xml"/><item><title>The build</title><link>https://projectsunrise.dev/docs/destiny-1/the-build/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/the-build/</guid><description>&lt;p&gt;Every fact in these pages is about one build: the PS4 executable of Destiny 1, version 1.29. Other&#10;builds are used for names and cross-checks only.&lt;/p&gt;&#10;&lt;h2 id="ps4-version-129"&gt;PS4 version 1.29&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;property&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;value&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;title&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;CUSA00219&lt;/code&gt;, the US release&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;version&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.29&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;date&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;September 2016&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;module name&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;tiger_release_final&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;executable size&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;29.1 MB&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;executable SHA-256&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;7271fcb926401df8defb126cb8eb2b247134138b81e401bbacb2ab60791b7954&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;compiler&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Sony&amp;rsquo;s clang toolchain, release build&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;obfuscation&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;none: no packing and no control-flow flattening&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;class names&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;full Itanium RTTI, with 1,380 Bungie &lt;code&gt;c_&lt;/code&gt; and &lt;code&gt;s_&lt;/code&gt; type names&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;The executable is plain. Unlike the Destiny 2 PC build, nothing is encrypted and every string can be&#10;read from the file.&lt;/p&gt;</description></item><item><title>The platform layer</title><link>https://projectsunrise.dev/docs/destiny-1/platform-layer/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/platform-layer/</guid><description>&lt;p&gt;The engine has a thin operating-system layer of its own. It is about 330 functions, most of them one&#10;to three lines around one Sony system call. The Xbox One build and the Destiny 2 PC build have the&#10;same layer, with the same struct offsets, call shapes and enums. They call Win32 where the PS4 build&#10;calls the PS4 kernel or Fios2.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Third-party libraries make most system calls themselves.&lt;/strong&gt; Havok, Wwise, CRI, Demonware, NP&#10;Toolkit and Oodle each have their own small platform layer. The engine&amp;rsquo;s layer does not cover them.&#10;About 1,021 of the 1,189 kernel call sites outside the C library sit in the upper part of the image,&#10;mostly in that library code.&lt;/p&gt;</description></item><item><title>Time and frame pacing</title><link>https://projectsunrise.dev/docs/destiny-1/time-and-frame-pacing/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/time-and-frame-pacing/</guid><description>&lt;p&gt;The game runs at a fixed 30 ticks a second and one tick a frame. Gameplay time is counted in ticks,&#10;not seconds. A slow frame slows the game down; it does not catch up.&lt;/p&gt;&#10;&lt;p&gt;The same &amp;ldquo;time control&amp;rdquo; engine is in all four builds checked: Destiny 1 PS4, Destiny 1 Xbox,&#10;Destiny 2 PS4 and Destiny 2 PC. They share the config struct, the pump loop, the tick accumulator&#10;and the published frame record. How Destiny 2 PC changes it is in&#10;&lt;a href="https://projectsunrise.dev/docs/destiny-1/compared-with-pc/"&gt;Compared with Destiny 2 PC&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Compared with Destiny 2 PC</title><link>https://projectsunrise.dev/docs/destiny-1/compared-with-pc/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/compared-with-pc/</guid><description>&lt;p&gt;Destiny 1 is a console build. It has no frame rate setting, no vsync choice, no mouse or keyboard,&#10;no resolution change and no field-of-view setting. The Destiny 2 PC build, 86657, has all of them,&#10;built on the same engine. This page lists what Destiny 2 PC does for each feature and what the&#10;Destiny 1 code has in its place.&lt;/p&gt;&#10;&lt;h2 id="frame-pacing"&gt;Frame pacing&lt;/h2&gt;&#10;&lt;p&gt;Both games use the same time control engine. See&#10;&lt;a href="https://projectsunrise.dev/docs/destiny-1/time-and-frame-pacing/"&gt;Time and frame pacing&lt;/a&gt; for Destiny 1&amp;rsquo;s. Destiny 2 PC&#10;changes four things:&lt;/p&gt;</description></item><item><title>Rendering</title><link>https://projectsunrise.dev/docs/destiny-1/rendering/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/rendering/</guid><description>&lt;p&gt;The engine renders through a thin Bungie render API. Under it sits Sony&amp;rsquo;s own graphics library,&#10;linked into the executable. Nothing outside the render layer writes GPU commands. What reaches the&#10;render API is GPU-level data: raw texture, sampler and buffer descriptors, render targets as raw&#10;register sets, and shader structs that point at GCN machine code.&lt;/p&gt;&#10;&lt;h2 id="two-layers"&gt;Two layers&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;layer&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;what it is&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;render API&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Bungie code: contexts, draws, state, clears, queries, recording and submission, plus frame, surface and job code&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;libGnm, GpuAddress, libGnmx&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Sony&amp;rsquo;s library, linked statically: descriptor helpers, the command packet writers, tiling math, and &lt;code&gt;GfxContext&lt;/code&gt; with its constant update engine&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Code outside the render layer calls Sony&amp;rsquo;s library only to set up descriptors and to do tiling&#10;math: the surface allocator, lookup textures and the crash screen. The UI draws through the same&#10;render API as the world.&lt;/li&gt;&#10;&lt;li&gt;One function submits work to the GPU. It is the only caller of both Sony submit calls.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="the-backend-boundary"&gt;The backend boundary&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;There is no virtual render interface&lt;/strong&gt; in any Tiger build. Each platform links its own version of&#10;the same plain functions, with the same engine-side arguments. Destiny 2 PS4&amp;rsquo;s RTTI names no device,&#10;context, resource or state class either.&lt;/p&gt;</description></item><item><title>The Activity Host</title><link>https://projectsunrise.dev/docs/destiny-1/activity-host/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/activity-host/</guid><description>&lt;p&gt;In Destiny 1 a light server process, the Activity Host, runs the mission script. It decides mission&#10;progress from small facts the clients report. It does not simulate the world. Simulation runs on the&#10;players&amp;rsquo; consoles: one console is the physics peer, and every console runs its own actors, movement&#10;and combat.&lt;/p&gt;&#10;&lt;p&gt;Two sources describe this. Bungie&amp;rsquo;s own talk gives the design. The PS4 client&amp;rsquo;s code confirms the&#10;parts on this page that name a message or a state.&lt;/p&gt;</description></item><item><title>Actors and AI</title><link>https://projectsunrise.dev/docs/destiny-1/actors-and-ai/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://projectsunrise.dev/docs/destiny-1/actors-and-ai/</guid><description>&lt;p&gt;Actors run on each player&amp;rsquo;s console, not on a server. This page covers how an actor chooses and&#10;blends its actions, how factions are stored, and how objects are filtered.&lt;/p&gt;&#10;&lt;h2 id="the-action-system"&gt;The action system&lt;/h2&gt;&#10;&lt;p&gt;Bungie described Destiny 1&amp;rsquo;s animation in the SIGGRAPH 2014 course&#10;&lt;a href="https://advances.realtimerendering.com/destiny/siggraph2014/animation/index.html"&gt;Destiny Character-Animation System and Lessons Learned&lt;/a&gt;.&#10;Its networking section was never published, so the course says nothing about the wire.&lt;/p&gt;&#10;&lt;p&gt;An &lt;strong&gt;action&lt;/strong&gt; is one behavior: locomotion, a melee, an emote. Destiny 1 has 75 action types.&lt;/p&gt;</description></item></channel></rss>