<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sadocs.unreliable.network/index.php?action=history&amp;feed=atom&amp;title=Sonic_Adventure%2FCharacter_Faces</id>
	<title>Sonic Adventure/Character Faces - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sadocs.unreliable.network/index.php?action=history&amp;feed=atom&amp;title=Sonic_Adventure%2FCharacter_Faces"/>
	<link rel="alternate" type="text/html" href="https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;action=history"/>
	<updated>2026-05-01T14:12:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=614&amp;oldid=prev</id>
		<title>Speeps: Big&#039;s Faces</title>
		<link rel="alternate" type="text/html" href="https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=614&amp;oldid=prev"/>
		<updated>2025-12-05T19:33:18Z</updated>

		<summary type="html">&lt;p&gt;Big&amp;#039;s Faces&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:33, 5 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l82&quot;&gt;Line 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eggman and Gamma don&#039;t have faces and nothing happens if they&#039;re told to use one. Big is a unique case, as he has facial expressions but they &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;exist in an incomplete state - he &lt;/del&gt;only has 6, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and his regular &lt;/del&gt;head model &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;isn&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t removed &lt;/del&gt;when &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;he uses them, making &lt;/del&gt;him look like he has two mouths.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eggman and Gamma don&#039;t have faces and nothing happens if they&#039;re told to use one. Big is a unique case, as he has facial expressions but they &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aren&#039;t used. He also has a few issues with using his talk head model:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* He &lt;/ins&gt;only has 6 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;faces&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which causes most animations (which use higher values) to crash the game.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* His &lt;/ins&gt;head model &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;has two pairs of eyes, causing his eyelids to be obscured between the two.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* The game makes it look like Big opens his mouth during certain animations by having his jaw attached to his body&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s model, which &lt;/ins&gt;when &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;using the talk head causes &lt;/ins&gt;him &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/ins&gt;look like he has two mouths.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=200 heights=200&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=200 heights=200&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SA1 FacesBig.png|Big&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SA1 FacesBig.png|Big&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SA1 FacesDCBig.png|Big (Extras removed)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SA1 FacesDCTikal.png|Tikal&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SA1 FacesDCTikal.png|Tikal&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speeps</name></author>
	</entry>
	<entry>
		<id>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=612&amp;oldid=prev</id>
		<title>Speeps: /* Raw Expressions */ Wrong column</title>
		<link rel="alternate" type="text/html" href="https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=612&amp;oldid=prev"/>
		<updated>2025-11-24T18:54:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Raw Expressions: &lt;/span&gt; Wrong column&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:54, 24 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some faces are rare, only used by specific characters, or not used at all:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some faces are rare, only used by specific characters, or not used at all:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 10 (Row 3, Column 1) is unreferenced.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 10 (Row 3, Column 1) is unreferenced.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 11 (Row 3, Column &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;), for Sonic and Knuckles is only visible as the first frame of their hurt animation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 11 (Row 3, Column &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;), for Sonic and Knuckles is only visible as the first frame of their hurt animation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 12 (Row 3, Column 3) is only used in animations played by Tails and Amy.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 12 (Row 3, Column 3) is only used in animations played by Tails and Amy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 18 (Row 4, Column 4) is only referenced by the animation &amp;#039;c&amp;#039;, which is unused.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 18 (Row 4, Column 4) is only referenced by the animation &amp;#039;c&amp;#039;, which is unused.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speeps</name></author>
	</entry>
	<entry>
		<id>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=611&amp;oldid=prev</id>
		<title>Speeps: /* Animation List */</title>
		<link rel="alternate" type="text/html" href="https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=611&amp;oldid=prev"/>
		<updated>2025-11-13T23:47:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Animation List&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:47, 13 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l191&quot;&gt;Line 191:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 191:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|R&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|R&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Yes (Rare)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Yes (Rare)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Slow &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Surprsied &lt;/del&gt;expression. Similar to M but slower.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Slow &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Surprised &lt;/ins&gt;expression. Similar to M but slower.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|18&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|18&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speeps</name></author>
	</entry>
	<entry>
		<id>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=609&amp;oldid=prev</id>
		<title>Speeps: Created page with &quot;Faces The expressions characters make in events can be loaded at any time, in contrast to later entries in the series where they&#039;re baked into cutscenes.  ==Faces in Events== In events, face animations are called using &lt;code&gt;void EV_SetFace(task *tp, char *str)&lt;/code&gt;. The parameters are player&#039;s Task and a character string that creates a queue of animations to play, with each letter representing an animation. The strings are cas...&quot;</title>
		<link rel="alternate" type="text/html" href="https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Character_Faces&amp;diff=609&amp;oldid=prev"/>
		<updated>2025-11-13T23:31:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/wiki/File:SA1_FacesExample.png&quot; title=&quot;File:SA1 FacesExample.png&quot;&gt;right|320px|Faces&lt;/a&gt; The expressions characters make in events can be loaded at any time, in contrast to later entries in the series where they&amp;#039;re baked into cutscenes.  ==Faces in Events== In events, face animations are called using &amp;lt;code&amp;gt;void EV_SetFace(task *tp, char *str)&amp;lt;/code&amp;gt;. The parameters are player&amp;#039;s Task and a character string that creates a queue of animations to play, with each letter representing an animation. The strings are cas...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[File:SA1 FacesExample.png|right|320px|Faces]]&lt;br /&gt;
The expressions characters make in events can be loaded at any time, in contrast to later entries in the series where they&amp;#039;re baked into cutscenes.&lt;br /&gt;
&lt;br /&gt;
==Faces in Events==&lt;br /&gt;
In events, face animations are called using &amp;lt;code&amp;gt;void EV_SetFace(task *tp, char *str)&amp;lt;/code&amp;gt;. The parameters are player&amp;#039;s Task and a character string that creates a queue of animations to play, with each letter representing an animation. The strings are case-sensitive: &amp;#039;&amp;#039;&amp;#039;A-Z&amp;#039;&amp;#039;&amp;#039; (Uppercase) and &amp;#039;&amp;#039;&amp;#039;a-e&amp;#039;&amp;#039;&amp;#039; (lowercase). The list of faces is called faceTbl (PC: &amp;lt;code&amp;gt;0x91D010&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
There are two heads the player uses - one for gameplay and one for performing these expressions. Once the animation ends, the player&amp;#039;s head doesn&amp;#039;t reset to the gameplay one automatically. Usually, the game uses &amp;lt;code&amp;gt;void EV_ClrFace(task *tp)&amp;lt;/code&amp;gt; to reset it. However, putting the number 0 at the end of the EV_SetFace string - it&amp;#039;s a unique character that tells the game to reset the player&amp;#039;s head.&lt;br /&gt;
&lt;br /&gt;
Resetting the head after playing an animation is recommended, as the event head constantly plays a blinking animation when it&amp;#039;s loaded.&lt;br /&gt;
&lt;br /&gt;
==Faces in Gameplay==&lt;br /&gt;
When the game uses faces outside events, it uses &amp;lt;code&amp;gt;void PFaceChange(Sint32 pno, Sint32 faceno)&amp;lt;/code&amp;gt;.  This one is less complex than the event version because it can only read one face and is given an ID to read directly instead of forming a queue through a string. However, it resets the head automatically afterwards, though it can also be reset using &amp;lt;code&amp;gt;void PFaceCancel(Sint32 pno)&amp;lt;/code&amp;gt;. Due to the game being slowed down to play events, all face animations look very fast outside events.&lt;br /&gt;
&lt;br /&gt;
Faces outside events are only used in 3 situations:&lt;br /&gt;
&lt;br /&gt;
* When the player is hurt.&lt;br /&gt;
* When Sonic, Tails or Knuckles are frozen*.&lt;br /&gt;
* The scene at the beginning of Icecap 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;* The only way to be frozen (Attacked by an Ice Ball enemy) is only accessible to Sonic. 2P Tails can&amp;#039;t be frozen and Knuckles doesn&amp;#039;t go to Icecap.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Structs==&lt;br /&gt;
There are two main face structs. The two functions to change the face use different ones, but they&amp;#039;re both used when the game processes the animation itself.&lt;br /&gt;
&lt;br /&gt;
The struct EV_SetFace uses is facewk, found in &amp;lt;code&amp;gt;playertwp[id]-&amp;gt;ewp-&amp;gt;face&amp;lt;/code&amp;gt; (NOTE: There is no old struct version of eventwk, but ewp is known as &amp;lt;code&amp;gt;field_3C&amp;lt;/code&amp;gt; in EntityData1).&lt;br /&gt;
&lt;br /&gt;
Faces are always interpolating to the next one, so to create a static face the game makes a single animation play multiple times.&lt;br /&gt;
&lt;br /&gt;
 struct facewk {&lt;br /&gt;
  char old;		//Previous face, or 1st frame in the interpolation.&lt;br /&gt;
  char __new;		//Next face, or last frame in the interpolation.&lt;br /&gt;
  Sint16 nbFrame;	//Number of frames the interpolation lasts&lt;br /&gt;
  Sint16 frame;		//Current frame in the interpolation.&lt;br /&gt;
  char *dataPtr;		//Stores the string given by EV_SetFace.&lt;br /&gt;
  FACETBL *tablePtr;	//Face array, usually facetbl.&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The struct PFaceChange uses is PL_FACE, found in &amp;lt;code&amp;gt;playerpwp[id]-&amp;gt;pfp&amp;lt;/code&amp;gt; (offset &amp;lt;code&amp;gt;0x70&amp;lt;/code&amp;gt;, known as &amp;lt;code&amp;gt;SomePointer&amp;lt;/code&amp;gt; in CharObj2).&lt;br /&gt;
&lt;br /&gt;
 struct PL_FACE&lt;br /&gt;
 {&lt;br /&gt;
  char lastface;&lt;br /&gt;
  char face;&lt;br /&gt;
  char reqface;&lt;br /&gt;
  char tblpoint;&lt;br /&gt;
  Float frame;&lt;br /&gt;
  Float framespeed;&lt;br /&gt;
  FACETBL *tbl;				//Face array, usually facetbl.&lt;br /&gt;
  NJS_OBJECT *sibling;		&lt;br /&gt;
  NJS_OBJECT *faceorg;&lt;br /&gt;
  NJS_OBJECT *facebuf;&lt;br /&gt;
  NJS_MOTION *facetypes;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Processing the faces is done in &amp;lt;code&amp;gt;void PlayerFaceMotionExec(task *tp)&amp;lt;/code&amp;gt; (PC: &amp;lt;code&amp;gt;0x440560&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Raw Expressions==&lt;br /&gt;
Each entry in facetbl is an array of the following struct:&lt;br /&gt;
&lt;br /&gt;
 struct FACETBL&lt;br /&gt;
 {&lt;br /&gt;
  char nbFrame;&lt;br /&gt;
  char faceNo;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
For Sonic, Tails, Knuckles, Amy and Tikal, there are 20 raw expressions that faceNo can use. While it&amp;#039;s possible through directly editing pwp-&amp;gt;pfp or ewp-&amp;gt;face, the game doesn&amp;#039;t have a way to manually fix the character on one face - it can only play animations through the methods given above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Dreamcast&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=200 heights=200&amp;gt;&lt;br /&gt;
SA1 FacesSonicDC.png|Sonic&lt;br /&gt;
SA1 FacesDCTails.png|Tails&lt;br /&gt;
SA1 FacesDCKnuckles.png|Knuckles&lt;br /&gt;
SA1 FacesDCAmy.png|Amy&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;SADX&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=200 heights=200&amp;gt;&lt;br /&gt;
SA1 SonicFacesDX.png|Sonic&lt;br /&gt;
SA1 FacesDXTails.png|Tails&lt;br /&gt;
SA1 FacesDXKnuckles.png|Knuckles&lt;br /&gt;
SA1 FacesDXAmy.png|Amy&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eggman and Gamma don&amp;#039;t have faces and nothing happens if they&amp;#039;re told to use one. Big is a unique case, as he has facial expressions but they exist in an incomplete state - he only has 6, and his regular head model isn&amp;#039;t removed when he uses them, making him look like he has two mouths.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=200 heights=200&amp;gt;&lt;br /&gt;
SA1 FacesBig.png|Big&lt;br /&gt;
SA1 FacesDCTikal.png|Tikal&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Some faces are rare, only used by specific characters, or not used at all:&lt;br /&gt;
* 10 (Row 3, Column 1) is unreferenced.&lt;br /&gt;
* 11 (Row 3, Column 1), for Sonic and Knuckles is only visible as the first frame of their hurt animation.&lt;br /&gt;
* 12 (Row 3, Column 3) is only used in animations played by Tails and Amy.&lt;br /&gt;
* 18 (Row 4, Column 4) is only referenced by the animation &amp;#039;c&amp;#039;, which is unused.&lt;br /&gt;
&lt;br /&gt;
==Animation List==&lt;br /&gt;
This is a list of face animations, their number (for PFaceChange) and string character (for EV_SetFace). Some of them are rare or unused, which have been marked accordingly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!ID&lt;br /&gt;
!Char&lt;br /&gt;
!Used?&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|A&lt;br /&gt;
|Yes&lt;br /&gt;
|No expression.&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|B&lt;br /&gt;
|Yes&lt;br /&gt;
|Blink.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|C&lt;br /&gt;
|Yes&lt;br /&gt;
|Talking. Commonly used with D and E.&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|D&lt;br /&gt;
|Yes&lt;br /&gt;
|Talking. Commonly used with C and E.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|E&lt;br /&gt;
|Yes&lt;br /&gt;
|Talking. Commonly used with C and D.&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|F&lt;br /&gt;
|Yes&lt;br /&gt;
|Talking (&amp;quot;Something Buggin&amp;#039; You?&amp;quot; animation)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|G&lt;br /&gt;
|Yes&lt;br /&gt;
|Talking&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|H&lt;br /&gt;
|Yes&lt;br /&gt;
|Blink-&amp;gt;Surprised-&amp;gt;Buggin animation.&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|I&lt;br /&gt;
|Yes&lt;br /&gt;
|Hurt/Surprised expression. Also triggered when taking damage in gameplay.&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|J&lt;br /&gt;
|Yes&lt;br /&gt;
|Slow Shock expression. (&amp;quot;Watch out! You&amp;#039;re gonna crash! Aah!&amp;quot; animation)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|K&lt;br /&gt;
|Yes&lt;br /&gt;
|Closes eyes for a few seconds.&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|L&lt;br /&gt;
|Yes&lt;br /&gt;
|Closes eyes: Same as K but shorter.&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|M&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Slow Surprised expression.&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|N&lt;br /&gt;
|Yes&lt;br /&gt;
|Sad expression.&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|O&lt;br /&gt;
|Yes&lt;br /&gt;
|Very Sad expression.&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|P&lt;br /&gt;
|Yes&lt;br /&gt;
|Happy expression.&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|Q&lt;br /&gt;
|No&lt;br /&gt;
|Very Happy expression.&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|R&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Slow Surprsied expression. Similar to M but slower.&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|S&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Talking animation&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|T&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Half-closed eyelids.&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|U&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Half of a slow blink animation.&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|V&lt;br /&gt;
|Yes&lt;br /&gt;
|Closed eyes.&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|W&lt;br /&gt;
|Yes&lt;br /&gt;
|Sleepy eyelids animation. &lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|X&lt;br /&gt;
|Yes&lt;br /&gt;
|Opening eyes.&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|Y&lt;br /&gt;
|No&lt;br /&gt;
|Quarter-closed eyelids.&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|Z&lt;br /&gt;
|Yes&lt;br /&gt;
|Surprised expression.&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|a&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Sad expression. Only used by Amy in EV0072.&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|b&lt;br /&gt;
|Yes&lt;br /&gt;
|Happy expression.&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|c&lt;br /&gt;
|No&lt;br /&gt;
|Side mouth expression.&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|d&lt;br /&gt;
|No&lt;br /&gt;
|Side mouth expression.&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|e&lt;br /&gt;
|Yes (Rare)&lt;br /&gt;
|Surprised expression. Only used while frozen in Icecap.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{SA1Navbox}}&lt;/div&gt;</summary>
		<author><name>Speeps</name></author>
	</entry>
</feed>