<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wulinshu.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PhilYeahz</id>
	<title>Wulinshu - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wulinshu.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PhilYeahz"/>
	<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php/Special:Contributions/PhilYeahz"/>
	<updated>2026-06-04T01:29:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=568</id>
		<title>MOTN</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=568"/>
		<updated>2019-06-15T14:51:38Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Block 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Animations]]&lt;br /&gt;
The MOTN file format contains the animations for models based on their node structure.&amp;lt;br&amp;gt;&lt;br /&gt;
This format can be found in various PKS files and in the motion.bin file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
|-&lt;br /&gt;
| Header&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data Table&lt;br /&gt;
|-&lt;br /&gt;
| Unknown Extra Data&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Name Table&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Sequence data table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Sequence names offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Sequence data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || Attributes || Attributes&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mask !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00000FFF || uint12_t || Sequence count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sequence Data Table===&lt;br /&gt;
The sequence data table consists out of two offsets (each unsigned 32bit) per sequence.&amp;lt;br&amp;gt;&lt;br /&gt;
Both offsets point inside the sequence data segment.&amp;lt;br&amp;gt;&lt;br /&gt;
The first offset points to the main sequence data containing the key frames.&amp;lt;br&amp;gt;&lt;br /&gt;
The second offset points to some unknown data array.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sequence Name Table===&lt;br /&gt;
The sequence name table consists out of the offsets (unsigned 32bit) to the strings and the strings themself.&amp;lt;br&amp;gt;&lt;br /&gt;
The amount of names is given by the sequence count inside the header.&amp;lt;br&amp;gt;&lt;br /&gt;
The strings are zero terminated/seperated.&lt;br /&gt;
&lt;br /&gt;
===Sequence Data===&lt;br /&gt;
====Header====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Flag (decides the byte size for the block 2 and block 3 entries)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 || ushort || Block 1 end offset/Block 2 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x02 || ushort || Block 2 end offset/Block 3 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 3 end offset/Block 4 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 4 end offset/Block 5 start offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 1====&lt;br /&gt;
The first block contains the descriptions for the structure of the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit-Mask !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE00 || Node ID/Bone ID?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0100 || Translation X channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0080 || Translation Y channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040 || Translation Z channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020 || Rotation X channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010 || Rotation Y channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || Rotation Z channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 2====&lt;br /&gt;
The second block contains for each channel the amount of data points (key frames?).&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&lt;br /&gt;
&lt;br /&gt;
====Block 3====&lt;br /&gt;
The third block contains frame index data.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&amp;lt;br&amp;gt;&lt;br /&gt;
Each frame is 0.0333333 milliseconds (30 FPS)&lt;br /&gt;
&lt;br /&gt;
====Block 4====&lt;br /&gt;
The fourth block contains the same amount of data as the second block.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 1 bytes in size.&lt;br /&gt;
&lt;br /&gt;
====Block 5====&lt;br /&gt;
The fifth and last block contains the actual data for the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size and could be interpreted as degrees.&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=567</id>
		<title>MOTN</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=567"/>
		<updated>2019-06-14T21:27:59Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Block 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Animations]]&lt;br /&gt;
The MOTN file format contains the animations for models based on their node structure.&amp;lt;br&amp;gt;&lt;br /&gt;
This format can be found in various PKS files and in the motion.bin file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
|-&lt;br /&gt;
| Header&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data Table&lt;br /&gt;
|-&lt;br /&gt;
| Unknown Extra Data&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Name Table&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Sequence data table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Sequence names offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Sequence data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || Attributes || Attributes&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mask !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00000FFF || uint12_t || Sequence count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sequence Data Table===&lt;br /&gt;
The sequence data table consists out of two offsets (each unsigned 32bit) per sequence.&amp;lt;br&amp;gt;&lt;br /&gt;
Both offsets point inside the sequence data segment.&amp;lt;br&amp;gt;&lt;br /&gt;
The first offset points to the main sequence data containing the key frames.&amp;lt;br&amp;gt;&lt;br /&gt;
The second offset points to some unknown data array.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sequence Name Table===&lt;br /&gt;
The sequence name table consists out of the offsets (unsigned 32bit) to the strings and the strings themself.&amp;lt;br&amp;gt;&lt;br /&gt;
The amount of names is given by the sequence count inside the header.&amp;lt;br&amp;gt;&lt;br /&gt;
The strings are zero terminated/seperated.&lt;br /&gt;
&lt;br /&gt;
===Sequence Data===&lt;br /&gt;
====Header====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Flag (decides the byte size for the block 2 and block 3 entries)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 || ushort || Block 1 end offset/Block 2 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x02 || ushort || Block 2 end offset/Block 3 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 3 end offset/Block 4 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 4 end offset/Block 5 start offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 1====&lt;br /&gt;
The first block contains the descriptions for the structure of the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit-Mask !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE00 || Node ID/Bone ID?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0100 || First X? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0080 || First Y? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040 || First Z? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020 || Second X? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010 || Second Y? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || Second Z? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 2====&lt;br /&gt;
The second block contains for each channel the amount of data points (key frames?).&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&lt;br /&gt;
&lt;br /&gt;
====Block 3====&lt;br /&gt;
The third block contains frame index data.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&amp;lt;br&amp;gt;&lt;br /&gt;
Each frame is 0.0333333 milliseconds (30 FPS)&lt;br /&gt;
&lt;br /&gt;
====Block 4====&lt;br /&gt;
The fourth block contains the same amount of data as the second block.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 1 bytes in size.&lt;br /&gt;
&lt;br /&gt;
====Block 5====&lt;br /&gt;
The fifth and last block contains the actual data for the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size and could be interpreted as degrees.&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=566</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=566"/>
		<updated>2019-06-14T20:55:08Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
==Stack==&lt;br /&gt;
There is a stack base and stack pointer.&lt;br /&gt;
==R14==&lt;br /&gt;
R14 is the general purpose register of the script parser.&amp;lt;br&amp;gt;&lt;br /&gt;
It is used to store function call return values and to do conditional jumping.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = immediate value size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes '''IF''' R14 is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes '''IF''' R14 is zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes '''IF''' R14 is zero&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Immediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = immediate value size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 - 0x4F || 0100 xxxx || Writes value from last time to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Write stack value to R14&lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Read R14 value to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=565</id>
		<title>MOTN</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=565"/>
		<updated>2019-06-05T18:13:38Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Sequence Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Animations]]&lt;br /&gt;
The MOTN file format contains the animations for models based on their node structure.&amp;lt;br&amp;gt;&lt;br /&gt;
This format can be found in various PKS files and in the motion.bin file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
|-&lt;br /&gt;
| Header&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data Table&lt;br /&gt;
|-&lt;br /&gt;
| Unknown Extra Data&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Name Table&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Sequence data table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Sequence names offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Sequence data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || Attributes || Attributes&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mask !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00000FFF || uint12_t || Sequence count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sequence Data Table===&lt;br /&gt;
The sequence data table consists out of two offsets (each unsigned 32bit) per sequence.&amp;lt;br&amp;gt;&lt;br /&gt;
Both offsets point inside the sequence data segment.&amp;lt;br&amp;gt;&lt;br /&gt;
The first offset points to the main sequence data containing the key frames.&amp;lt;br&amp;gt;&lt;br /&gt;
The second offset points to some unknown data array.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sequence Name Table===&lt;br /&gt;
The sequence name table consists out of the offsets (unsigned 32bit) to the strings and the strings themself.&amp;lt;br&amp;gt;&lt;br /&gt;
The amount of names is given by the sequence count inside the header.&amp;lt;br&amp;gt;&lt;br /&gt;
The strings are zero terminated/seperated.&lt;br /&gt;
&lt;br /&gt;
===Sequence Data===&lt;br /&gt;
====Header====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Flag (decides the byte size for the block 2 and block 3 entries)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 || ushort || Block 1 end offset/Block 2 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x02 || ushort || Block 2 end offset/Block 3 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 3 end offset/Block 4 start offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Block 4 end offset/Block 5 start offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 1====&lt;br /&gt;
The first block contains the descriptions for the structure of the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit-Mask !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE00 || Node ID/Bone ID?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0100 || First X? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0080 || First Y? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0040 || First Z? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0020 || Second X? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0010 || Second Y? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0008 || Second Z? channel available&lt;br /&gt;
|-&lt;br /&gt;
| 0x0007 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Block 2====&lt;br /&gt;
The second block contains for each channel the amount of data points (key frames?).&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&lt;br /&gt;
&lt;br /&gt;
====Block 3====&lt;br /&gt;
The third block contains unknown data.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes or 1 bytes in size depending on the flag.&lt;br /&gt;
&lt;br /&gt;
====Block 4====&lt;br /&gt;
The fourth block contains the same amount of data as the second block.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 1 bytes in size.&lt;br /&gt;
&lt;br /&gt;
====Block 5====&lt;br /&gt;
The fifth and last block contains the actual data for the keyframes.&amp;lt;br&amp;gt;&lt;br /&gt;
Each entry in the block is 2 bytes in size and could be interpreted as degrees.&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=564</id>
		<title>MOTN</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MOTN&amp;diff=564"/>
		<updated>2019-06-05T18:01:19Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Animations]]&lt;br /&gt;
The MOTN file format contains the animations for models based on their node structure.&amp;lt;br&amp;gt;&lt;br /&gt;
This format can be found in various PKS files and in the motion.bin file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Section&lt;br /&gt;
|-&lt;br /&gt;
| Header&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data Table&lt;br /&gt;
|-&lt;br /&gt;
| Unknown Extra Data&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Name Table&lt;br /&gt;
|-&lt;br /&gt;
| Sequence Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Sequence data table offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Sequence names offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Sequence data offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || Attributes || Attributes&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Attributes====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mask !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00000FFF || uint12_t || Sequence count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sequence Data Table===&lt;br /&gt;
The sequence data table consists out of two offsets (each unsigned 32bit) per sequence.&amp;lt;br&amp;gt;&lt;br /&gt;
Both offsets point inside the sequence data segment.&amp;lt;br&amp;gt;&lt;br /&gt;
The first offset points to the main sequence data containing the key frames.&amp;lt;br&amp;gt;&lt;br /&gt;
The second offset points to some unknown data array.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sequence Name Table===&lt;br /&gt;
The sequence name table consists out of the offsets (unsigned 32bit) to the strings and the strings themself.&amp;lt;br&amp;gt;&lt;br /&gt;
The amount of names is given by the sequence count inside the header.&amp;lt;br&amp;gt;&lt;br /&gt;
The strings are zero terminated/seperated.&lt;br /&gt;
&lt;br /&gt;
===Sequence Data===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x02 || ushort || First block offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x02 || ushort || Second block offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x02 || ushort || Third block offset&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MT5&amp;diff=563</id>
		<title>MT5</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MT5&amp;diff=563"/>
		<updated>2019-05-26T17:13:16Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Models]]&lt;br /&gt;
MT5 is an model container format for Shenmue I.&amp;lt;br&amp;gt;&lt;br /&gt;
The model format is based on an node based hierarchy tree.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an C# implementation based on this documentation look [https://github.com/philyeahz/ShenmueDKSharp/blob/master/Files/Models/MT5.cs here].&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (HRCM)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || TEXD offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || First node offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===MT5 Node===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Mesh offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0C || short || Rotation (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x0C || float || Scale (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x0C || float || Position/Translate (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x04 || uint || Child offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x04 || uint || Sibling offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x04 || uint || Parent offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x04 || string || Node name&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0x04 || ? || Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mesh Data===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Polytype?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Vertices offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Vertex count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Instructions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x0C || float || Mesh center (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x04 || float || Mesh radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Instructions====&lt;br /&gt;
These instructions are state machine like. Each instruction changes the state of how to render the strip.&amp;lt;br&amp;gt;&lt;br /&gt;
Each instruction identifier is 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
=====Unused (0x0E00, 0x0F00)=====&lt;br /&gt;
Ignored. Skip 10 bytes.&lt;br /&gt;
&lt;br /&gt;
=====Unused (0x8000, 0xA000)=====&lt;br /&gt;
Ignored. Skip 2 bytes.&lt;br /&gt;
&lt;br /&gt;
=====UV Size (0x0B00)=====&lt;br /&gt;
Size of the as UV which divides the raw UV value being read.&amp;lt;br&amp;gt;&lt;br /&gt;
Only usable for non-UVH coordinates.&lt;br /&gt;
&lt;br /&gt;
=====Strip Attributes (0x0200 - 0x0700)=====&lt;br /&gt;
First byte holds UV flag for how they are interpreted.&lt;br /&gt;
Holds information about the texture UV wrap modes.&lt;br /&gt;
&lt;br /&gt;
=====Texture (0x0900)=====&lt;br /&gt;
Sets the texture to use for the next instructions.&lt;br /&gt;
&lt;br /&gt;
=====Strip Group (0x1000 - 0x1400, 0x1800 - 0x1C00)=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || ushort || Strip count&lt;br /&gt;
|}&lt;br /&gt;
These strip groups have the following vertex structure based on the identifiers:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Vertex Size !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x1000, 0x1300, 0x1800, 0x1B00 || 2 Bytes (Index) || Vertex index&lt;br /&gt;
|-&lt;br /&gt;
| 0x1200, 0x1A00 || 2 Bytes (Index) + 4 Bytes (BGRA) || Vertex index, Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x1100, 0x1900 || 2 Bytes (Index) + 4 Bytes (UV) || Vertex index, UV&lt;br /&gt;
|-&lt;br /&gt;
| 0x1400, 0x1C00 || 2 Bytes (Index) + 4 Bytes (UV) + 4 Bytes (BGRA) || Vertex index, UV, Color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======Strip======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Strip vertex count&lt;br /&gt;
|}&lt;br /&gt;
Sometimes the vertex count can be negativ, just abs() it.&amp;lt;br&amp;gt;&lt;br /&gt;
The reason for this behaviour is unknown.&lt;br /&gt;
&lt;br /&gt;
======Strip &amp;quot;Vertex&amp;quot;======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Size !! Description &lt;br /&gt;
|-&lt;br /&gt;
| short || 0x02 || Vertex index&lt;br /&gt;
|-&lt;br /&gt;
| short || 0x04 || (optional) Texture Coordinate (UV)&lt;br /&gt;
|-&lt;br /&gt;
| byte || 0x04 || (optional) BGRA8888 Color&lt;br /&gt;
|}&lt;br /&gt;
The vertex structure is based on the strip group identifier.&amp;lt;br&amp;gt;&lt;br /&gt;
Often the vertex index can be negativ, this is an optimization and is used to point to the parents vertices.&amp;lt;br&amp;gt;&lt;br /&gt;
The UV coordinates are UVH (UV high-resolution) and need to be divided by 1024 to get normalized UV coordnates.&lt;br /&gt;
&lt;br /&gt;
=====End (0x0080)=====&lt;br /&gt;
Defines the end of instructions.&lt;br /&gt;
&lt;br /&gt;
====Vertices====&lt;br /&gt;
The vertices only hold the position and normal of an vertex.&lt;br /&gt;
=====Vertex=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x0C || float || Position (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x0C || float || Normals (X, Y, Z)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TEXD (Texture Definition)===&lt;br /&gt;
This sections holds texture count for the model.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TEXD)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Texture count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Texture Entry===&lt;br /&gt;
The MT5 format support external and embedded textures.&lt;br /&gt;
&lt;br /&gt;
====Texture ID====&lt;br /&gt;
Each texture entry has an texture ID which is 8 bytes long.&amp;lt;br&amp;gt;&lt;br /&gt;
The actual data type of the ID is still unknown, sometimes it looks like ASCII strings, Shift-JIS or plain garbage.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x08 || string || Texture ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TEXN (Texture Entry)====&lt;br /&gt;
This entry defines an embedded PVRT texture.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x08 || TextureID || Texture ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || PVRT || Texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====NAME (Texture Names)====&lt;br /&gt;
This entry defines external PVRT textures each using the texture id for reference.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (NAME)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || TextureID[] || Texture ID Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TEXL (Texture Library)===&lt;br /&gt;
This sections holds offsets to the texture IDs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TEXL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Texture count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TEXL Entry====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint|| Offset to TextureID&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PTRL===&lt;br /&gt;
This sections holds offsets to various parts of the model.&amp;lt;br&amp;gt;&lt;br /&gt;
Its purpose is still unclear.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PTRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MT5&amp;diff=562</id>
		<title>MT5</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MT5&amp;diff=562"/>
		<updated>2019-05-26T17:13:05Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Models]]&lt;br /&gt;
MT5 is an model container format for Shenmue I.&amp;lt;br&amp;gt;&lt;br /&gt;
The model format is based on an node based hierarchy tree.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an C# implementation based on this documentation look [https://github.com/philyeahz/ShenmueDKSharp/blob/master/Files/Models/MT5.cs here].&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (HRCM)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || TEXD offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || First node offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===MT5 Node===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Mesh offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0C || short || Rotation (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x0C || float || Scale (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x0C || float || Position/Translate (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0x04 || uint || Child offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0x04 || uint || Sibling offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0x04 || uint || Parent offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0x04 || string || Node name&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0x04 || ? || Reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mesh Data===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Polytype?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Vertices offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Vertex count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Instructions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x0C || float || Mesh center (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0x04 || float || Mesh radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Instructions====&lt;br /&gt;
These instructions are state machine like. Each instruction changes the state of how to render the strip.&amp;lt;br&amp;gt;&lt;br /&gt;
Each instruction identifier is 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
=====Unused (0x0E00, 0x0F00)=====&lt;br /&gt;
Ignored. Skip 10 bytes.&lt;br /&gt;
&lt;br /&gt;
=====Unused (0x8000, 0xA000)=====&lt;br /&gt;
Ignored. Skip 2 bytes.&lt;br /&gt;
&lt;br /&gt;
=====UV Size(0x0B00)=====&lt;br /&gt;
Size of the as UV which divides the raw UV value being read.&amp;lt;br&amp;gt;&lt;br /&gt;
Only usable for non-UVH coordinates.&lt;br /&gt;
&lt;br /&gt;
=====Strip Attributes (0x0200 - 0x0700)=====&lt;br /&gt;
First byte holds UV flag for how they are interpreted.&lt;br /&gt;
Holds information about the texture UV wrap modes.&lt;br /&gt;
&lt;br /&gt;
=====Texture (0x0900)=====&lt;br /&gt;
Sets the texture to use for the next instructions.&lt;br /&gt;
&lt;br /&gt;
=====Strip Group (0x1000 - 0x1400, 0x1800 - 0x1C00)=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || ushort || Strip count&lt;br /&gt;
|}&lt;br /&gt;
These strip groups have the following vertex structure based on the identifiers:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Vertex Size !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x1000, 0x1300, 0x1800, 0x1B00 || 2 Bytes (Index) || Vertex index&lt;br /&gt;
|-&lt;br /&gt;
| 0x1200, 0x1A00 || 2 Bytes (Index) + 4 Bytes (BGRA) || Vertex index, Color&lt;br /&gt;
|-&lt;br /&gt;
| 0x1100, 0x1900 || 2 Bytes (Index) + 4 Bytes (UV) || Vertex index, UV&lt;br /&gt;
|-&lt;br /&gt;
| 0x1400, 0x1C00 || 2 Bytes (Index) + 4 Bytes (UV) + 4 Bytes (BGRA) || Vertex index, UV, Color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======Strip======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Strip vertex count&lt;br /&gt;
|}&lt;br /&gt;
Sometimes the vertex count can be negativ, just abs() it.&amp;lt;br&amp;gt;&lt;br /&gt;
The reason for this behaviour is unknown.&lt;br /&gt;
&lt;br /&gt;
======Strip &amp;quot;Vertex&amp;quot;======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Size !! Description &lt;br /&gt;
|-&lt;br /&gt;
| short || 0x02 || Vertex index&lt;br /&gt;
|-&lt;br /&gt;
| short || 0x04 || (optional) Texture Coordinate (UV)&lt;br /&gt;
|-&lt;br /&gt;
| byte || 0x04 || (optional) BGRA8888 Color&lt;br /&gt;
|}&lt;br /&gt;
The vertex structure is based on the strip group identifier.&amp;lt;br&amp;gt;&lt;br /&gt;
Often the vertex index can be negativ, this is an optimization and is used to point to the parents vertices.&amp;lt;br&amp;gt;&lt;br /&gt;
The UV coordinates are UVH (UV high-resolution) and need to be divided by 1024 to get normalized UV coordnates.&lt;br /&gt;
&lt;br /&gt;
=====End (0x0080)=====&lt;br /&gt;
Defines the end of instructions.&lt;br /&gt;
&lt;br /&gt;
====Vertices====&lt;br /&gt;
The vertices only hold the position and normal of an vertex.&lt;br /&gt;
=====Vertex=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x0C || float || Position (X, Y, Z)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x0C || float || Normals (X, Y, Z)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TEXD (Texture Definition)===&lt;br /&gt;
This sections holds texture count for the model.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TEXD)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Texture count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Texture Entry===&lt;br /&gt;
The MT5 format support external and embedded textures.&lt;br /&gt;
&lt;br /&gt;
====Texture ID====&lt;br /&gt;
Each texture entry has an texture ID which is 8 bytes long.&amp;lt;br&amp;gt;&lt;br /&gt;
The actual data type of the ID is still unknown, sometimes it looks like ASCII strings, Shift-JIS or plain garbage.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x08 || string || Texture ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TEXN (Texture Entry)====&lt;br /&gt;
This entry defines an embedded PVRT texture.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x08 || TextureID || Texture ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || PVRT || Texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====NAME (Texture Names)====&lt;br /&gt;
This entry defines external PVRT textures each using the texture id for reference.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (NAME)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || TextureID[] || Texture ID Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TEXL (Texture Library)===&lt;br /&gt;
This sections holds offsets to the texture IDs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TEXL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Texture count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TEXL Entry====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint|| Offset to TextureID&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PTRL===&lt;br /&gt;
This sections holds offsets to various parts of the model.&amp;lt;br&amp;gt;&lt;br /&gt;
Its purpose is still unclear.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PTRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=561</id>
		<title>CHRD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=561"/>
		<updated>2019-05-13T18:04:20Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CHRD segment contains models and character properties that will be loaded for the mapinfo. &lt;br /&gt;
&lt;br /&gt;
====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model ID&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file to the previous model ID&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model ID to character&lt;br /&gt;
|-&lt;br /&gt;
| CHARACTER(34, {Model_ID}, {unknown}) || Defines a character&lt;br /&gt;
|-&lt;br /&gt;
| FACE(3, {FaceModelFile}) || Defines the face model for a character&lt;br /&gt;
|-&lt;br /&gt;
| HAND(27, {LeftHandModelFile}, {RightHandModelFile}) || Defines the hand models for a character&lt;br /&gt;
|-&lt;br /&gt;
| HUMAN({uint32}) || Defines the character as human?&lt;br /&gt;
|-&lt;br /&gt;
| PLAYER({uint32}) || Defines the character as player?&lt;br /&gt;
|-&lt;br /&gt;
| OBJECT({uint32}) || Defines the character as object?&lt;br /&gt;
|-&lt;br /&gt;
| POSITION(1, {xyz}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| POSITION(73, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE(1, {xyz}) || Sets the rotation of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE(73, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SCALE(1, {xyz}) || Sets the scale of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SCALE(73, {x}, {y}, {z}) || Sets the scale of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SIZE(1, {xyz}) || Sets the size of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SIZE(73, {x}, {y}, {z}) || Sets the size of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| HEIGHT({uint32}, {Height}) || Height?&lt;br /&gt;
|-&lt;br /&gt;
| RADIUS({uint32}, {Radius}) || Radius?&lt;br /&gt;
|-&lt;br /&gt;
| RANGE({uint32}, {Start}, {End}) || Draw distance?&lt;br /&gt;
|-&lt;br /&gt;
| LEVEL({uint32}, {Level}) || ?&lt;br /&gt;
|-&lt;br /&gt;
| MODE({uint32}, {float32}) || ?&lt;br /&gt;
|-&lt;br /&gt;
| VENDER({uint32}, {float32}) || Defines a vendor or vending machine?&lt;br /&gt;
|-&lt;br /&gt;
| TRANS({uint32}) || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=560</id>
		<title>CHRD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=560"/>
		<updated>2019-05-13T17:54:14Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CHRD segment contains models and character properties that will be loaded for the mapinfo. &lt;br /&gt;
&lt;br /&gt;
====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model ID&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file to the previous model ID&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model ID to character&lt;br /&gt;
|-&lt;br /&gt;
| CHARACTER(34, {Model_ID}, {unknown}) || Defines a character&lt;br /&gt;
|-&lt;br /&gt;
| FACE(3, {FaceModelFile}) || Defines the face model for a character&lt;br /&gt;
|-&lt;br /&gt;
| HAND(27, {LeftHandModelFile}, {RightHandModelFile}) || Defines the hand models for a character&lt;br /&gt;
|-&lt;br /&gt;
| POSITION(1, {xyz}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| POSITION(73, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE(1, {xyz}) || Sets the rotation of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE(73, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SCALE(1, {xyz}) || Sets the scale of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| SCALE(73, {x}, {y}, {z}) || Sets the scale of the currently active model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=SCN3&amp;diff=559</id>
		<title>SCN3</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=SCN3&amp;diff=559"/>
		<updated>2019-05-12T18:14:55Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;The SCN3 segment contains the Shenmue Script&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SCN3 segment contains the [[Shenmue Script]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=558</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=558"/>
		<updated>2019-05-12T18:13:46Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
The mapinfo is the main file for each scene map.&lt;br /&gt;
It contains many things such as the shenmue scene script, model loading and definition, collisions, light, weather, sound program setup and cutscenes.&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| ATTR || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| REGD || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| EVFD || empty&lt;br /&gt;
|-&lt;br /&gt;
| LSCN || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| END || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=557</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=557"/>
		<updated>2019-05-12T18:09:57Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| ATTR || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| REGD || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| EVFD || empty&lt;br /&gt;
|-&lt;br /&gt;
| LSCN || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| END || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=556</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=556"/>
		<updated>2019-05-12T18:09:44Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| ATTR || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| REGD || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| EVFD || empty&lt;br /&gt;
|-&lt;br /&gt;
| LSCN || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| END || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=555</id>
		<title>CHRD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=555"/>
		<updated>2019-05-12T18:08:26Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CHRD segment contains models and character properties that will be loaded for the mapinfo. &lt;br /&gt;
&lt;br /&gt;
====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model file (from humans.afs)&lt;br /&gt;
|-&lt;br /&gt;
| POSITION({uint32}, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE({uint32}, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=SCRL&amp;diff=554</id>
		<title>SCRL</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=SCRL&amp;diff=554"/>
		<updated>2019-05-12T18:07:56Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string || Identifier (SCRL) |- | 0x04 || 0x04 || uint || Size in bytes |- | 0x08 || 0...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=WTHR&amp;diff=553</id>
		<title>WTHR</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=WTHR&amp;diff=553"/>
		<updated>2019-05-12T18:07:17Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;Used by WEXE ((HLTaskFunc)ExecuteWeather) {| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=552</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=552"/>
		<updated>2019-05-12T18:06:24Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| [[REGD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| [[EVFD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[LSCN]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| [[END]] || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=551</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=551"/>
		<updated>2019-05-12T18:06:03Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| [[REGD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| [[EVFD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[LSCN]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| [[END]] || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===[[SCEX]]===&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=550</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=550"/>
		<updated>2019-05-12T18:05:18Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[PROP]] || Props&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| [[REGD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| [[EVFD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[LSCN]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| [[END]] || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===[[SCEX]]===&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=FLDD&amp;diff=549</id>
		<title>FLDD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=FLDD&amp;diff=549"/>
		<updated>2019-05-12T18:04:34Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;Shenmue II collision data  ====PROP==== Header: {| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string || Identifier (PROP) |- | 0x04...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shenmue II collision data&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=COLS&amp;diff=548</id>
		<title>COLS</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=COLS&amp;diff=548"/>
		<updated>2019-05-12T18:03:51Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;Shenmue 1 collisions  {| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string || Identifier (COLS) |- | 0x04 || 0x04 || uint || Size i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shenmue 1 collisions&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=ECAM&amp;diff=547</id>
		<title>ECAM</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=ECAM&amp;diff=547"/>
		<updated>2019-05-12T18:03:18Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;Event Cam. Used when interacting with object (switching camera). Has something to do with HPMa/HPMb.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=546</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=546"/>
		<updated>2019-05-12T18:03:01Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;Welcome to the Wulinshu Wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wulinshu Wiki focuses on the research and documentation of the Shenmue I &amp;amp; II HD ports by [https://d3tltd.com/ d3t].&lt;br /&gt;
&lt;br /&gt;
[[File:Shenmue I Logo.png|thumb|left|link=https://wulinshu.com/wiki/index.php/Category:Shenmue]][[File:Shenmue II Logo.png|thumb|right|link=https://wulinshu.com/wiki/index.php/Category:Shenmue_II]] &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Useful Links ===&lt;br /&gt;
==== Runtime ====&lt;br /&gt;
* [[:Category:Memory Addresses|Memory Addresses]]&lt;br /&gt;
** [[Memory Addresses (SM1)]]&lt;br /&gt;
** [[Memory Addresses (SM2)]]&lt;br /&gt;
** [[Function Memory Addresses (SM1)]]&lt;br /&gt;
** [[Function Memory Addresses (SM2)]]&lt;br /&gt;
* [[:Category:Text References|Text References]]&lt;br /&gt;
** [[Text References (SM1)]]&lt;br /&gt;
** [[Text References (SM2)]]&lt;br /&gt;
* [[:Category:Tasks|Tasks]]&lt;br /&gt;
** [[:Category:Tasks (SM1)|Tasks (SM1)]]&lt;br /&gt;
** [[:Category:Tasks (SM2)|Tasks (SM2)]]&lt;br /&gt;
* [[:Category:Structs|Structs]]&lt;br /&gt;
** [[:Category:Structs (SM1)|Structs (SM1)]]&lt;br /&gt;
** [[:Category:Structs (SM2)|Structs (SM2)]]&lt;br /&gt;
&lt;br /&gt;
==== [[HLib]] ====&lt;br /&gt;
* [[Task Queue System]]&lt;br /&gt;
* [[Memory Management (USE/fREe)]]&lt;br /&gt;
* [[Shenmue Script]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:d3t|d3t]] ====&lt;br /&gt;
* [[Model Override]]&lt;br /&gt;
* [[Texture Override]]&lt;br /&gt;
* [[Asset Remapping]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Files|Files]] ====&lt;br /&gt;
* [[:Category:Containers|Containers]]&lt;br /&gt;
** [[AFS]]&lt;br /&gt;
** [[IDX]]&lt;br /&gt;
** [[PKF]]&lt;br /&gt;
** [[PKS]]&lt;br /&gt;
** [[SPR]]&lt;br /&gt;
* [[:Category:Map|Map]]&lt;br /&gt;
** [[MAPINFO]]&lt;br /&gt;
** [[:Category:Map_IDs|Map IDs]]&lt;br /&gt;
* [[:Category:Models|Models]]&lt;br /&gt;
** [[MT5]]&lt;br /&gt;
** [[MT7]]&lt;br /&gt;
* [[:Category:Animations|Animations]]&lt;br /&gt;
** [[MOTN]]&lt;br /&gt;
* [[:Category:Textures|Textures]]&lt;br /&gt;
** [[PVR]]&lt;br /&gt;
* [[:Category:Subtitles|Subtitles]]&lt;br /&gt;
** [[SUB]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=LGHT&amp;diff=545</id>
		<title>LGHT</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=LGHT&amp;diff=545"/>
		<updated>2019-05-12T18:02:42Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;Scene Light (HLTaskFunc)LT_LightTask  Parent Node: {| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string || Identifier (LGHT) |-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scene Light&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=544</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=544"/>
		<updated>2019-05-12T18:01:56Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nodes===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Signature !! Description &lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[SNDP]] || Sound program&lt;br /&gt;
|-&lt;br /&gt;
| [[LGHT]] || Scene light&lt;br /&gt;
|-&lt;br /&gt;
| [[ECAM]] || Event camera&lt;br /&gt;
|-&lt;br /&gt;
| [[COLS]] || Collisions (SM1)&lt;br /&gt;
|-&lt;br /&gt;
| [[FLDD]] || Collision field (SM2)&lt;br /&gt;
|-&lt;br /&gt;
| [[PROP]] || Props&lt;br /&gt;
|-&lt;br /&gt;
| [[DOOR]] || Doors&lt;br /&gt;
|-&lt;br /&gt;
| [[SCEX]] || Cutscenes&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN3]] || Scene script v3&lt;br /&gt;
|-&lt;br /&gt;
| [[SCN4]] || Scene script v4&lt;br /&gt;
|-&lt;br /&gt;
| [[REGD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[WTHR]] || Weather&lt;br /&gt;
|-&lt;br /&gt;
| [[EVFD]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[LSCN]] || empty&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPR]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPT]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[SCRL]] || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[CHRD]] || Character data (External models)&lt;br /&gt;
|-&lt;br /&gt;
| [[END]] || EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===[[SNDP]] (Sound Program)===&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===[[SCEX]]===&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=543</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=543"/>
		<updated>2019-05-12T17:54:51Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* SCEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===[[SNDP]] (Sound Program)===&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===[[SCEX]]===&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=542</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=542"/>
		<updated>2019-05-12T17:54:35Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;Welcome to the Wulinshu Wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wulinshu Wiki focuses on the research and documentation of the Shenmue I &amp;amp; II HD ports by [https://d3tltd.com/ d3t].&lt;br /&gt;
&lt;br /&gt;
[[File:Shenmue I Logo.png|thumb|left|link=https://wulinshu.com/wiki/index.php/Category:Shenmue]][[File:Shenmue II Logo.png|thumb|right|link=https://wulinshu.com/wiki/index.php/Category:Shenmue_II]] &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Useful Links ===&lt;br /&gt;
==== Runtime ====&lt;br /&gt;
* [[:Category:Memory Addresses|Memory Addresses]]&lt;br /&gt;
** [[Memory Addresses (SM1)]]&lt;br /&gt;
** [[Memory Addresses (SM2)]]&lt;br /&gt;
** [[Function Memory Addresses (SM1)]]&lt;br /&gt;
** [[Function Memory Addresses (SM2)]]&lt;br /&gt;
* [[:Category:Text References|Text References]]&lt;br /&gt;
** [[Text References (SM1)]]&lt;br /&gt;
** [[Text References (SM2)]]&lt;br /&gt;
* [[:Category:Tasks|Tasks]]&lt;br /&gt;
** [[:Category:Tasks (SM1)|Tasks (SM1)]]&lt;br /&gt;
** [[:Category:Tasks (SM2)|Tasks (SM2)]]&lt;br /&gt;
* [[:Category:Structs|Structs]]&lt;br /&gt;
** [[:Category:Structs (SM1)|Structs (SM1)]]&lt;br /&gt;
** [[:Category:Structs (SM2)|Structs (SM2)]]&lt;br /&gt;
&lt;br /&gt;
==== [[HLib]] ====&lt;br /&gt;
* [[Task Queue System]]&lt;br /&gt;
* [[Memory Management (USE/fREe)]]&lt;br /&gt;
* [[Shenmue Script]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:d3t|d3t]] ====&lt;br /&gt;
* [[Model Override]]&lt;br /&gt;
* [[Texture Override]]&lt;br /&gt;
* [[Asset Remapping]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Files|Files]] ====&lt;br /&gt;
* [[:Category:Containers|Containers]]&lt;br /&gt;
** [[AFS]]&lt;br /&gt;
** [[IDX]]&lt;br /&gt;
** [[PKF]]&lt;br /&gt;
** [[PKS]]&lt;br /&gt;
** [[SPR]]&lt;br /&gt;
* [[:Category:Map|Map]]&lt;br /&gt;
** [[MAPINFO]]&lt;br /&gt;
*** [[SNDP]]&lt;br /&gt;
*** [[SCEX]]&lt;br /&gt;
*** [[CHRD]]&lt;br /&gt;
** [[:Category:Map_IDs|Map IDs]]&lt;br /&gt;
* [[:Category:Models|Models]]&lt;br /&gt;
** [[MT5]]&lt;br /&gt;
** [[MT7]]&lt;br /&gt;
* [[:Category:Animations|Animations]]&lt;br /&gt;
** [[MOTN]]&lt;br /&gt;
* [[:Category:Textures|Textures]]&lt;br /&gt;
** [[PVR]]&lt;br /&gt;
* [[:Category:Subtitles|Subtitles]]&lt;br /&gt;
** [[SUB]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=SCEX&amp;diff=541</id>
		<title>SCEX</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=SCEX&amp;diff=541"/>
		<updated>2019-05-12T17:54:01Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description  |- | 0x00 || 0x04 || string || Identifier (SCEX) |- | 0x04 || 0x04 || uint || Size in bytes |- | 0x08 || 0...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=540</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=540"/>
		<updated>2019-05-12T17:53:34Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* SCEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===[[SNDP]] (Sound Program)===&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===[[SCEX]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=539</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=539"/>
		<updated>2019-05-12T17:52:59Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===[[SNDP]] (Sound Program)===&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===SCEX===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=538</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=538"/>
		<updated>2019-05-12T17:52:36Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;Welcome to the Wulinshu Wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wulinshu Wiki focuses on the research and documentation of the Shenmue I &amp;amp; II HD ports by [https://d3tltd.com/ d3t].&lt;br /&gt;
&lt;br /&gt;
[[File:Shenmue I Logo.png|thumb|left|link=https://wulinshu.com/wiki/index.php/Category:Shenmue]][[File:Shenmue II Logo.png|thumb|right|link=https://wulinshu.com/wiki/index.php/Category:Shenmue_II]] &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Useful Links ===&lt;br /&gt;
==== Runtime ====&lt;br /&gt;
* [[:Category:Memory Addresses|Memory Addresses]]&lt;br /&gt;
** [[Memory Addresses (SM1)]]&lt;br /&gt;
** [[Memory Addresses (SM2)]]&lt;br /&gt;
** [[Function Memory Addresses (SM1)]]&lt;br /&gt;
** [[Function Memory Addresses (SM2)]]&lt;br /&gt;
* [[:Category:Text References|Text References]]&lt;br /&gt;
** [[Text References (SM1)]]&lt;br /&gt;
** [[Text References (SM2)]]&lt;br /&gt;
* [[:Category:Tasks|Tasks]]&lt;br /&gt;
** [[:Category:Tasks (SM1)|Tasks (SM1)]]&lt;br /&gt;
** [[:Category:Tasks (SM2)|Tasks (SM2)]]&lt;br /&gt;
* [[:Category:Structs|Structs]]&lt;br /&gt;
** [[:Category:Structs (SM1)|Structs (SM1)]]&lt;br /&gt;
** [[:Category:Structs (SM2)|Structs (SM2)]]&lt;br /&gt;
&lt;br /&gt;
==== [[HLib]] ====&lt;br /&gt;
* [[Task Queue System]]&lt;br /&gt;
* [[Memory Management (USE/fREe)]]&lt;br /&gt;
* [[Shenmue Script]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:d3t|d3t]] ====&lt;br /&gt;
* [[Model Override]]&lt;br /&gt;
* [[Texture Override]]&lt;br /&gt;
* [[Asset Remapping]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Files|Files]] ====&lt;br /&gt;
* [[:Category:Containers|Containers]]&lt;br /&gt;
** [[AFS]]&lt;br /&gt;
** [[IDX]]&lt;br /&gt;
** [[PKF]]&lt;br /&gt;
** [[PKS]]&lt;br /&gt;
** [[SPR]]&lt;br /&gt;
* [[:Category:Map|Map]]&lt;br /&gt;
** [[MAPINFO]]&lt;br /&gt;
*** [[SNDP]]&lt;br /&gt;
*** [[CHRD]]&lt;br /&gt;
** [[:Category:Map_IDs|Map IDs]]&lt;br /&gt;
* [[:Category:Models|Models]]&lt;br /&gt;
** [[MT5]]&lt;br /&gt;
** [[MT7]]&lt;br /&gt;
* [[:Category:Animations|Animations]]&lt;br /&gt;
** [[MOTN]]&lt;br /&gt;
* [[:Category:Textures|Textures]]&lt;br /&gt;
** [[PVR]]&lt;br /&gt;
* [[:Category:Subtitles|Subtitles]]&lt;br /&gt;
** [[SUB]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=SNDP&amp;diff=537</id>
		<title>SNDP</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=SNDP&amp;diff=537"/>
		<updated>2019-05-12T17:52:15Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sound Program&lt;br /&gt;
[[(HLTaskFunc)sndCtrlSoundProgram]]&lt;br /&gt;
&lt;br /&gt;
====SNDD====&lt;br /&gt;
&lt;br /&gt;
====SNDA====&lt;br /&gt;
&lt;br /&gt;
====SNDR====&lt;br /&gt;
&lt;br /&gt;
====SNDM====&lt;br /&gt;
&lt;br /&gt;
=====SMAP=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====SBTS=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SBTS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=SNDP&amp;diff=536</id>
		<title>SNDP</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=SNDP&amp;diff=536"/>
		<updated>2019-05-12T17:51:43Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;(HLTaskFunc)sndCtrlSoundProgram  ====SNDD====  ====SNDA====  ====SNDR====  ====SNDM====  =====SMAP===== {| class=&amp;quot;wikitable&amp;quot; |- ! Position !! Length !! Type !! Description...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[(HLTaskFunc)sndCtrlSoundProgram]]&lt;br /&gt;
&lt;br /&gt;
====SNDD====&lt;br /&gt;
&lt;br /&gt;
====SNDA====&lt;br /&gt;
&lt;br /&gt;
====SNDR====&lt;br /&gt;
&lt;br /&gt;
====SNDM====&lt;br /&gt;
&lt;br /&gt;
=====SMAP=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====SBTS=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SBTS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=535</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=535"/>
		<updated>2019-05-12T17:51:16Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* SNDP (Sound Program) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===[[SNDP]] (Sound Program)===&lt;br /&gt;
[[(HLTaskFunc)sndCtrlSoundProgram]]&lt;br /&gt;
&lt;br /&gt;
====SNDD====&lt;br /&gt;
&lt;br /&gt;
====SNDA====&lt;br /&gt;
&lt;br /&gt;
====SNDR====&lt;br /&gt;
&lt;br /&gt;
====SNDM====&lt;br /&gt;
&lt;br /&gt;
=====SMAP=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====SBTS=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SBTS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===SCEX===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=534</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=534"/>
		<updated>2019-05-12T17:50:48Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;Welcome to the Wulinshu Wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wulinshu Wiki focuses on the research and documentation of the Shenmue I &amp;amp; II HD ports by [https://d3tltd.com/ d3t].&lt;br /&gt;
&lt;br /&gt;
[[File:Shenmue I Logo.png|thumb|left|link=https://wulinshu.com/wiki/index.php/Category:Shenmue]][[File:Shenmue II Logo.png|thumb|right|link=https://wulinshu.com/wiki/index.php/Category:Shenmue_II]] &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Useful Links ===&lt;br /&gt;
==== Runtime ====&lt;br /&gt;
* [[:Category:Memory Addresses|Memory Addresses]]&lt;br /&gt;
** [[Memory Addresses (SM1)]]&lt;br /&gt;
** [[Memory Addresses (SM2)]]&lt;br /&gt;
** [[Function Memory Addresses (SM1)]]&lt;br /&gt;
** [[Function Memory Addresses (SM2)]]&lt;br /&gt;
* [[:Category:Text References|Text References]]&lt;br /&gt;
** [[Text References (SM1)]]&lt;br /&gt;
** [[Text References (SM2)]]&lt;br /&gt;
* [[:Category:Tasks|Tasks]]&lt;br /&gt;
** [[:Category:Tasks (SM1)|Tasks (SM1)]]&lt;br /&gt;
** [[:Category:Tasks (SM2)|Tasks (SM2)]]&lt;br /&gt;
* [[:Category:Structs|Structs]]&lt;br /&gt;
** [[:Category:Structs (SM1)|Structs (SM1)]]&lt;br /&gt;
** [[:Category:Structs (SM2)|Structs (SM2)]]&lt;br /&gt;
&lt;br /&gt;
==== [[HLib]] ====&lt;br /&gt;
* [[Task Queue System]]&lt;br /&gt;
* [[Memory Management (USE/fREe)]]&lt;br /&gt;
* [[Shenmue Script]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:d3t|d3t]] ====&lt;br /&gt;
* [[Model Override]]&lt;br /&gt;
* [[Texture Override]]&lt;br /&gt;
* [[Asset Remapping]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Files|Files]] ====&lt;br /&gt;
* [[:Category:Containers|Containers]]&lt;br /&gt;
** [[AFS]]&lt;br /&gt;
** [[IDX]]&lt;br /&gt;
** [[PKF]]&lt;br /&gt;
** [[PKS]]&lt;br /&gt;
** [[SPR]]&lt;br /&gt;
* [[:Category:Map|Map]]&lt;br /&gt;
** [[MAPINFO]]&lt;br /&gt;
*** [[CHRD]]&lt;br /&gt;
** [[:Category:Map_IDs|Map IDs]]&lt;br /&gt;
* [[:Category:Models|Models]]&lt;br /&gt;
** [[MT5]]&lt;br /&gt;
** [[MT7]]&lt;br /&gt;
* [[:Category:Animations|Animations]]&lt;br /&gt;
** [[MOTN]]&lt;br /&gt;
* [[:Category:Textures|Textures]]&lt;br /&gt;
** [[PVR]]&lt;br /&gt;
* [[:Category:Subtitles|Subtitles]]&lt;br /&gt;
** [[SUB]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=533</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Main_Page&amp;diff=533"/>
		<updated>2019-05-12T17:50:41Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;strong&amp;gt;Welcome to the Wulinshu Wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Wulinshu Wiki focuses on the research and documentation of the Shenmue I &amp;amp; II HD ports by [https://d3tltd.com/ d3t].&lt;br /&gt;
&lt;br /&gt;
[[File:Shenmue I Logo.png|thumb|left|link=https://wulinshu.com/wiki/index.php/Category:Shenmue]][[File:Shenmue II Logo.png|thumb|right|link=https://wulinshu.com/wiki/index.php/Category:Shenmue_II]] &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Useful Links ===&lt;br /&gt;
==== Runtime ====&lt;br /&gt;
* [[:Category:Memory Addresses|Memory Addresses]]&lt;br /&gt;
** [[Memory Addresses (SM1)]]&lt;br /&gt;
** [[Memory Addresses (SM2)]]&lt;br /&gt;
** [[Function Memory Addresses (SM1)]]&lt;br /&gt;
** [[Function Memory Addresses (SM2)]]&lt;br /&gt;
* [[:Category:Text References|Text References]]&lt;br /&gt;
** [[Text References (SM1)]]&lt;br /&gt;
** [[Text References (SM2)]]&lt;br /&gt;
* [[:Category:Tasks|Tasks]]&lt;br /&gt;
** [[:Category:Tasks (SM1)|Tasks (SM1)]]&lt;br /&gt;
** [[:Category:Tasks (SM2)|Tasks (SM2)]]&lt;br /&gt;
* [[:Category:Structs|Structs]]&lt;br /&gt;
** [[:Category:Structs (SM1)|Structs (SM1)]]&lt;br /&gt;
** [[:Category:Structs (SM2)|Structs (SM2)]]&lt;br /&gt;
&lt;br /&gt;
==== [[HLib]] ====&lt;br /&gt;
* [[Task Queue System]]&lt;br /&gt;
* [[Memory Management (USE/fREe)]]&lt;br /&gt;
* [[Shenmue Script]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:d3t|d3t]] ====&lt;br /&gt;
* [[Model Override]]&lt;br /&gt;
* [[Texture Override]]&lt;br /&gt;
* [[Asset Remapping]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Files|Files]] ====&lt;br /&gt;
* [[:Category:Containers|Containers]]&lt;br /&gt;
** [[AFS]]&lt;br /&gt;
** [[IDX]]&lt;br /&gt;
** [[PKF]]&lt;br /&gt;
** [[PKS]]&lt;br /&gt;
** [[SPR]]&lt;br /&gt;
* [[:Category:Map|Map]]&lt;br /&gt;
** [[MAPINFO]]&lt;br /&gt;
** [[[CHRD]]]&lt;br /&gt;
** [[:Category:Map_IDs|Map IDs]]&lt;br /&gt;
* [[:Category:Models|Models]]&lt;br /&gt;
** [[MT5]]&lt;br /&gt;
** [[MT7]]&lt;br /&gt;
* [[:Category:Animations|Animations]]&lt;br /&gt;
** [[MOTN]]&lt;br /&gt;
* [[:Category:Textures|Textures]]&lt;br /&gt;
** [[PVR]]&lt;br /&gt;
* [[:Category:Subtitles|Subtitles]]&lt;br /&gt;
** [[SUB]]&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=532</id>
		<title>CHRD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=532"/>
		<updated>2019-05-12T17:50:26Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CHRD segment contains models character properties that will be loaded for the mapinfo. &lt;br /&gt;
&lt;br /&gt;
====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model file (from humans.afs)&lt;br /&gt;
|-&lt;br /&gt;
| POSITION({uint32}, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE({uint32}, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=531</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=531"/>
		<updated>2019-05-12T17:50:15Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* CHRD (Character Data) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===SNDP (Sound Program)===&lt;br /&gt;
[[(HLTaskFunc)sndCtrlSoundProgram]]&lt;br /&gt;
&lt;br /&gt;
====SNDD====&lt;br /&gt;
&lt;br /&gt;
====SNDA====&lt;br /&gt;
&lt;br /&gt;
====SNDR====&lt;br /&gt;
&lt;br /&gt;
====SNDM====&lt;br /&gt;
&lt;br /&gt;
=====SMAP=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====SBTS=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SBTS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===SCEX===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
The CHRD segment contains models character properties that will be loaded for the mapinfo.&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=530</id>
		<title>CHRD</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=CHRD&amp;diff=530"/>
		<updated>2019-05-12T17:48:41Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: Created page with &amp;quot;====CHRS==== The CHRS contains data that is defined by the STRG node. CHRS and STRG are entangled.  =====Functions===== {| class=&amp;quot;wikitable&amp;quot; |- ! Name !! Description  |- | DEF...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model file (from humans.afs)&lt;br /&gt;
|-&lt;br /&gt;
| POSITION({uint32}, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE({uint32}, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=529</id>
		<title>MAPINFO</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=MAPINFO&amp;diff=529"/>
		<updated>2019-05-12T17:48:23Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Shenmue II]]&lt;br /&gt;
[[Category:Shenmue]]&lt;br /&gt;
[[Category:Files]]&lt;br /&gt;
[[Category:Map]]&lt;br /&gt;
===Memory Models===&lt;br /&gt;
&lt;br /&gt;
Could be the MAPINFO memory model:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCNC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x04 || string || Identifier (USE ) //space at the end&lt;br /&gt;
|-&lt;br /&gt;
| 0x0? || 0x0? || ? || Variable size (contains pointers)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Found at qword_7FF717119290 (v1.03) in the code segment (CS).&lt;br /&gt;
It is accessed when reading the TRCK segment.&lt;br /&gt;
&amp;lt;sub&amp;gt;&lt;br /&gt;
    struct s1 {&lt;br /&gt;
        signed char[8] pad8;&lt;br /&gt;
        signed char f8; //bool set to 1 at end&lt;br /&gt;
        signed char[7] pad16;&lt;br /&gt;
        struct s0* f16;&lt;br /&gt;
        struct s2* f24; //ASEQ&lt;br /&gt;
        struct s2* f32; //ACAM&lt;br /&gt;
        struct s2* f40; //AMOV&lt;br /&gt;
        struct s2* f48; //ASTR&lt;br /&gt;
        struct s2* f56; //ALIP&lt;br /&gt;
        uint64_t f64;&lt;br /&gt;
        uint64_t f72;&lt;br /&gt;
        signed char[8] pad88;&lt;br /&gt;
        int32_t f88;&lt;br /&gt;
        int32_t f92;&lt;br /&gt;
        int32_t f96;&lt;br /&gt;
        int32_t f100;&lt;br /&gt;
        signed char[12] pad116;&lt;br /&gt;
        struct s2* f116;&lt;br /&gt;
        signed char[4] pad128;&lt;br /&gt;
        struct s2* f128;&lt;br /&gt;
        signed char[42376] pad42512;&lt;br /&gt;
        int32_t f42512;&lt;br /&gt;
        int16_t f42516;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s0 {&lt;br /&gt;
        signed char[4] pad4;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        int32_t f8;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    struct s2 {&lt;br /&gt;
        int32_t f0;&lt;br /&gt;
        int32_t f4;&lt;br /&gt;
        signed char[1] pad9;&lt;br /&gt;
        signed char f9;&lt;br /&gt;
        signed char[2] pad12;&lt;br /&gt;
        int32_t f12;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ATTR (Attribute)===&lt;br /&gt;
Ignored.&lt;br /&gt;
&lt;br /&gt;
===SNDP (Sound Program)===&lt;br /&gt;
[[(HLTaskFunc)sndCtrlSoundProgram]]&lt;br /&gt;
&lt;br /&gt;
====SNDD====&lt;br /&gt;
&lt;br /&gt;
====SNDA====&lt;br /&gt;
&lt;br /&gt;
====SNDR====&lt;br /&gt;
&lt;br /&gt;
====SNDM====&lt;br /&gt;
&lt;br /&gt;
=====SMAP=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====SBTS=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SBTS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Map name 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Map name 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===LGHT (Light)===&lt;br /&gt;
[[(HLTaskFunc)LT_LightTask]]&lt;br /&gt;
&lt;br /&gt;
Parent Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Unknown (Sub node name)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size relativ to 0x08&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (LGHT)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || float || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x02 || ushort || Entry count&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || 0x02 || short || Flag for something (cmp 3)&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || ? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || ? || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Child Node Entry (32 bytes):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x02 || short || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x01 || byte || Unknown (same value as 0x00 but used)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x01 || byte || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 0x01 || byte || Unused?&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x14 || half floats || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || 0x02 || short || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ECAM===&lt;br /&gt;
Event Cam.&lt;br /&gt;
Used when interacting with object (switching camera).&lt;br /&gt;
Has something to do with HPMa/HPMb.&lt;br /&gt;
&lt;br /&gt;
===COLS (Collisions)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLS)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
Followed by 4 byte string identifier. Example: 0000&lt;br /&gt;
====COLI====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (COLI)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
====HGHT====&lt;br /&gt;
====EVNT====&lt;br /&gt;
====UNDU====&lt;br /&gt;
====SOND====&lt;br /&gt;
====PROP====&lt;br /&gt;
=====WALK=====&lt;br /&gt;
&lt;br /&gt;
===FLDD (Collision Field)===&lt;br /&gt;
Used often when moving around.&lt;br /&gt;
&lt;br /&gt;
====PROP====&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (PROP)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Content offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Footer offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footer:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || uint || Positions offset&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x0? || ? || Unknown offsets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===DOOR===&lt;br /&gt;
&lt;br /&gt;
===SCEX===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCEX)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || string || Scene name?&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Size in bytes (relative to 0x08)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====TRCK====&lt;br /&gt;
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C &amp;lt;br&amp;gt;&lt;br /&gt;
A track contains information for an cutscene.&amp;lt;br&amp;gt;&lt;br /&gt;
The track segment has no data itself, it just contains all the child segments which do contain the data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (TRCK)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ASEQ=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (ASEQ)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || ? || Some flags? (0x09 is 7 mostly)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x10 || string || Some .qst file?&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0x4 || uint? || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0x? || TOC || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table of content entry (12 bytes)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 0x01 || byte || Flag?&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 0x02 || ? || Reserved?&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || string || Character name and other stuff (props?)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====ACAM=====&lt;br /&gt;
Probably camera animation.&lt;br /&gt;
&lt;br /&gt;
=====AMOV=====&lt;br /&gt;
&lt;br /&gt;
=====ASTR=====&lt;br /&gt;
&lt;br /&gt;
====AUVW====&lt;br /&gt;
&lt;br /&gt;
=====LGHC=====&lt;br /&gt;
&lt;br /&gt;
=====RFBD=====&lt;br /&gt;
&lt;br /&gt;
=====EYES=====&lt;br /&gt;
&lt;br /&gt;
=====HAID=====&lt;br /&gt;
&lt;br /&gt;
=====HADT=====&lt;br /&gt;
&lt;br /&gt;
=====HAND=====&lt;br /&gt;
&lt;br /&gt;
=====FACX=====&lt;br /&gt;
&lt;br /&gt;
=====FADE=====&lt;br /&gt;
&lt;br /&gt;
=====MBTK=====&lt;br /&gt;
&lt;br /&gt;
=====FOBJ=====&lt;br /&gt;
&lt;br /&gt;
=====FCLP=====&lt;br /&gt;
&lt;br /&gt;
=====DOOR=====&lt;br /&gt;
&lt;br /&gt;
=====LGHS=====&lt;br /&gt;
&lt;br /&gt;
===SCN3===&lt;br /&gt;
&lt;br /&gt;
===SCN4===&lt;br /&gt;
&lt;br /&gt;
===REGD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===WTHR (Weather)===&lt;br /&gt;
Used by [[(HLTaskFunc)ExecuteWeather|WEXE]] ([[(HLTaskFunc)ExecuteWeather]])&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (WTHR)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0x04 || uint || Entry count?&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0x04 || uint || Reserved or Empty&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===EVFD===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===LSCN===&lt;br /&gt;
Empty.&lt;br /&gt;
&lt;br /&gt;
===MAPR===&lt;br /&gt;
&lt;br /&gt;
===MAPT===&lt;br /&gt;
&lt;br /&gt;
===SCRL===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (SCRL)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x04 || uint || Either fully F or 0&lt;br /&gt;
|}&lt;br /&gt;
Only present 2 times in sm2, but in sm1 it's common.&lt;br /&gt;
&lt;br /&gt;
===[[CHRD]] (Character Data)===&lt;br /&gt;
&lt;br /&gt;
====CHRS====&lt;br /&gt;
The CHRS contains data that is defined by the STRG node.&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Description &lt;br /&gt;
|-&lt;br /&gt;
| DEFIMAGE(35, {Model_ID}, {uint32}) || Defines a model&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(25, {float}, {Model_File}) || Assigns model file&lt;br /&gt;
|-&lt;br /&gt;
| IMAGE(3, {Model_ID}) || Assigns model file (from humans.afs)&lt;br /&gt;
|-&lt;br /&gt;
| POSITION({uint32}, {x}, {y}, {z}) || Sets the position of the currently active model&lt;br /&gt;
|-&lt;br /&gt;
| ANGLE({uint32}, {x}, {y}, {z}) || Sets the rotation of the currently active model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====STRG (Strings)====&lt;br /&gt;
CHRS and STRG are entangled.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Length !! Type !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 0x04 || string || Identifier (STRG)&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 0x04 || uint || Size in bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || 0x0? || strings || Strings with zero termination&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===END===&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=528</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=528"/>
		<updated>2019-05-03T13:13:12Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x40 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = immediate value size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Immediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = immediate value size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 - 0x4F || 0100 xxxx || Writes value from last time to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=527</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=527"/>
		<updated>2019-05-03T13:12:48Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x00 - 0x3F (0x00 - 0x3D) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = immediate value size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 - 0x4F || 0100 xxxx || Writes value from last time to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=526</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=526"/>
		<updated>2019-05-03T08:19:50Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* Stack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 - 0x4F || 0100 xxxx || Writes value from last time to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=525</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=525"/>
		<updated>2019-05-03T08:14:23Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x40 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 - 0x4F || 0100 xxxx || Writes value from last time to stack&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=524</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=524"/>
		<updated>2019-05-02T20:00:10Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x80 - 0xBF (0x80 - 0xA6) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || ==&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=523</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=523"/>
		<updated>2019-05-02T19:34:33Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x40 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n to stack (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n to stack (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n to stack (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=522</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=522"/>
		<updated>2019-05-02T19:32:28Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x00 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
Control-flow, Function calling.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n somewhere(stack?) (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=521</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=521"/>
		<updated>2019-05-02T19:32:00Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x00 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
Control-flow, Function calling&lt;br /&gt;
&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n somewhere(stack?) (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=520</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=520"/>
		<updated>2019-05-02T19:31:10Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x40 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
Memory, Move, Function operators&lt;br /&gt;
&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading into stack.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n somewhere(stack?) (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
	<entry>
		<id>https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=519</id>
		<title>Shenmue Script</title>
		<link rel="alternate" type="text/html" href="https://wulinshu.com/wiki/index.php?title=Shenmue_Script&amp;diff=519"/>
		<updated>2019-05-02T19:28:58Z</updated>

		<summary type="html">&lt;p&gt;PhilYeahz: /* 0x00 - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Stack=&lt;br /&gt;
The stack is used for operations on data.&lt;br /&gt;
Data is pushed onto the stack and an operation will than be executed on them.&lt;br /&gt;
&lt;br /&gt;
=Registers=&lt;br /&gt;
There is a stack base and stack pointer.&amp;lt;br&amp;gt;&lt;br /&gt;
A return value register is also available for function calls, which can be used by the next opcodes.&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
Each opcode is 1 byte in size.&lt;br /&gt;
&lt;br /&gt;
== 0x00 - 0x7F ==&lt;br /&gt;
Memory, Move, Function operators&lt;br /&gt;
&lt;br /&gt;
=== 0x00 - 0x3F (0x00 - 0x3D) ===&lt;br /&gt;
00xx nnnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
n = command&lt;br /&gt;
&lt;br /&gt;
==== Unknown ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || 0001 0000 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || 0010 0000 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || 0011 0000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || 0001 0001 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || 0010 0001 nnnnnnnn nnnnnnnn  || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || 0011 0001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || 0001 0010 nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || 0010 0010 nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || 0011 0010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || MOBJ related&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || 0001 0111 nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || 0010 0111 nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || 0011 0111 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n into register?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Stack ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || 0001 0011 nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || 0010 0011 nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || 0011 0011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Move stack pointer by n / 4 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Jump ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || 0001 0100 nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || 0010 0100 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || 0011 0100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes + unknown value&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || 0001 0101 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || 0010 0101 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || 0011 0101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || 0001 0110 nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || 0010 0110 nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || 0011 0110 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Jumps by the amount of n bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 6 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || 0001 1000 nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || 0010 1000 nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || 0011 1000 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || 0001 1001 nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || 0010 1001 nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || 0011 1001 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || 0001 1010 nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || 0010 1010 nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || 0011 1010 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || 0001 1011 nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || 0010 1011 nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || 0011 1011 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 4 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || 0001 1100 nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || 0010 1100 nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || 0011 1100 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Call Function Set 7 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || 0001 1101 nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || 0010 1101 nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || 0011 1101 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Execute the n function in set 7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0x40 - 0x7F ===&lt;br /&gt;
Intermediate value reading.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
01xx ddnn&amp;lt;br&amp;gt;&lt;br /&gt;
x = intermediate size (1 = 1 byte, 2 = 2 byte, 3 = 4 byte)&amp;lt;br&amp;gt;&lt;br /&gt;
d = command&amp;lt;br&amp;gt;&lt;br /&gt;
n = subcommand&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 - 0x5F || 0101 xxxx nnnnnnnn || Writes n somewhere(stack?) (1 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 - 0x6F || 0110 xxxx nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (2 byte)&lt;br /&gt;
|-&lt;br /&gt;
| 0x70 - 0x7F || 0111 xxxx nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn || Writes n somewhere(stack?) (4 byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0x80 - 0xBF (0x80 - 0xA6) ==&lt;br /&gt;
Arithmetic, Comparision/Relational, Logical, Bitwise, Compound assignment operators&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Opcode !! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 1000 0000 || Read &lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 1000 0001 || Write&lt;br /&gt;
|-&lt;br /&gt;
| 0x82 || 1000 0010 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x83 || 1000 0011 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || 1000 0100 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x85 || 1000 0101 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x86 || 1000 0110 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x87 || 1000 0111 || MOBJ accessor?&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || 1000 1000 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x89 || 1000 1001 || !=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8A || 1000 1010 || &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8B || 1000 1011 || &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || 1000 1100 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x8D || 1000 1101 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0x8E || 1000 1110 || ~&lt;br /&gt;
|-&lt;br /&gt;
| 0x8F || 1000 1111 || &amp;amp;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x90 || 1001 0000 || |=&lt;br /&gt;
|-&lt;br /&gt;
| 0x91 || 1001 0001 || ^=&lt;br /&gt;
|-&lt;br /&gt;
| 0x92 || 1001 0010 || +=&lt;br /&gt;
|-&lt;br /&gt;
| 0x93 || 1001 0011 || -=&lt;br /&gt;
|-&lt;br /&gt;
| 0x94 || 1001 0100 || *=&lt;br /&gt;
|-&lt;br /&gt;
| 0x95 || 1001 0101 || /=&lt;br /&gt;
|-&lt;br /&gt;
| 0x96 || 1001 0110 || %=&lt;br /&gt;
|-&lt;br /&gt;
| 0x97 || 1001 0111 || &amp;lt;&amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x98 || 1001 1000 || &amp;gt;&amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0x9D || 1001 1101 || float cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9E || 1001 1110 || signed cast&lt;br /&gt;
|-&lt;br /&gt;
| 0x9F || 1001 1111 || &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || 1010 0000 || &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| 0xA1 || 1010 0001 || &amp;gt;= (&amp;lt;= inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA2 || 1010 0010 || &amp;gt; (&amp;lt; inverted)&lt;br /&gt;
|-&lt;br /&gt;
| 0xA3 || 1010 0011 || +&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || 1010 0100 || -&lt;br /&gt;
|-&lt;br /&gt;
| 0xA5 || 1010 0101 || *&lt;br /&gt;
|-&lt;br /&gt;
| 0xA6 || 1010 0110 || /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 0xC0 - 0xFF ==&lt;br /&gt;
Invalid&lt;br /&gt;
&lt;br /&gt;
=Function Sets=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Position !! Function Count !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 140559C98 || 1 || Set 1 - Removed function&lt;br /&gt;
|-&lt;br /&gt;
| 140559CA0 || 5 || Set 2 - Memory functions (unused)&lt;br /&gt;
|-&lt;br /&gt;
| 140559CD0 || 466 || Set 3 - General Shenmue stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E0 || 1 || Set 4 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1E8 || 1 || Set 5 - Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 140A4F1F0 || 47 || Set 6 - SCNF stuff&lt;br /&gt;
|-&lt;br /&gt;
| 140554210 || 8 || Set 7 - Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CA0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| deleted || ? &lt;br /&gt;
|-&lt;br /&gt;
| memset || memset&lt;br /&gt;
|-&lt;br /&gt;
| memcpy || memcpy &lt;br /&gt;
|-&lt;br /&gt;
| strcpy || strcpy &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FFE0 || Reads 140EB1B30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140559CD0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190350 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B750 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B790 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B830 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401905B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140177D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14009B890 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190BC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190630 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401919B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191B60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401953F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193750 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401937C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401938F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193920 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193980 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193990 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401939A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194B70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194E00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401950F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195AB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401954A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196160 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401972D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401973E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140197450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401974F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1402CBD90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AB600 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABE60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADEF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE230 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE3A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE730 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE8A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4210 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7270 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8100 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8250 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401975F0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401976A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191D10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140192000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE20 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8EF0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8F20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9000 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9080 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE0C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4500 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE6B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195C90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193A80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B55D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401977A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A2EE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A34C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B75B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401C1E10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190D30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ADC20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140190A90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14018FA80 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140198720 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4550 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B45C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4650 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B4660 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BED30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEDE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194530 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE40 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401BEE50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401978E0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ACE90 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8370 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B8390 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191CD0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE10 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAC70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AACE0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE30 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAE70 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AAEA0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140195DB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B78D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193C00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7620 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140194D20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140193D00 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401962B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401B7770 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401ABF20 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AC1E0 || &lt;br /&gt;
|-&lt;br /&gt;
| deleted || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401AE9A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9420 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9430 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9450 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A9480 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1400A94A0 || &lt;br /&gt;
|-&lt;br /&gt;
| ... || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140A4F1F0) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_140191580 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401915C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8DC0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A8E60 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9440 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401916A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9200 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196560 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9190 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A91B0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401966A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_140196760 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9520 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9570 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9590 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A95C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9150 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9170 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A94D0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9470 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9240 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92A0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A92C0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9380 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9B50 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9BB0 || &lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A9460 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Function Set (140554210) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! Description &lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F120 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F3D0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14019F330 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1EB0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F20 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_1401A1F90 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14006D3F0 ||&lt;br /&gt;
|-&lt;br /&gt;
| sub_14000F380 ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PhilYeahz</name></author>
	</entry>
</feed>