<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.popre.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brandan+Tyler+Lasley</id>
	<title>Populous Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.popre.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brandan+Tyler+Lasley"/>
	<link rel="alternate" type="text/html" href="https://wiki.popre.net/Special:Contributions/Brandan_Tyler_Lasley"/>
	<updated>2026-05-13T16:47:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6035</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6035"/>
		<updated>2014-10-08T15:27:42Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
Inside the key blocks contains a modifier and a key. The modifier is optional and can be removed by setting it to 0. The modifier keys have no particular pattern associated with them, it could very well be hard coded.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ASCII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6034</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6034"/>
		<updated>2014-10-08T15:27:10Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|129&lt;br /&gt;
|SOUND&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|151&lt;br /&gt;
|GAMMA&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 64480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
The volume starts at 0 and ends at 127 which is 100%&lt;br /&gt;
&lt;br /&gt;
== Gamma ==&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=The_Beginning&amp;diff=6032</id>
		<title>The Beginning</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=The_Beginning&amp;diff=6032"/>
		<updated>2014-10-08T14:54:02Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Levels&lt;br /&gt;
|Level = The Beginning&lt;br /&gt;
|Image = the_beginning.jpg&lt;br /&gt;
|Mode = [[Singleplayer]]&lt;br /&gt;
|Players = 4&lt;br /&gt;
|Heads = 0&lt;br /&gt;
|VOK = 0&lt;br /&gt;
|Ally = N/A&lt;br /&gt;
|Difficulty = Very Hard&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Starting Speech==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Finally,I am a god. I shall wreak my revenge upon the unbelievers!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Strategy==&lt;br /&gt;
&lt;br /&gt;
This level is well prepared for you because you start off with lots of [[hut|large hut]]s and 50 followers, also youre a god and and don&#039;t have a [[Reincarnation Site]] but you still have to charge up your spells.&lt;br /&gt;
&lt;br /&gt;
This level is hard because the enemy really attacks you and have about 50+ people attacking you from 1 tribe, 2 tribes attack you, the [[Dakini]] goes first to attack you and the [[Chumara]] attacks you second and they attack really early, and the [[Matak]] builds houses right near your settlement. &lt;br /&gt;
Try use your [[shaman]] to defend your city as much as you can.&lt;br /&gt;
&lt;br /&gt;
{{Nav_Levels}}&lt;br /&gt;
[[Category:The Beginning Levels]]&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6031</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6031"/>
		<updated>2014-10-08T12:05:30Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Combination keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
Inside the key blocks contains a modifier and a key. The modifier is optional and can be removed by setting it to 0. The modifer keys have no pitucalr pattern associated with them, it could very well be hard coded.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6030</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6030"/>
		<updated>2014-10-08T12:04:38Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
Inside the key blocks contains a modifier and a key. The modifier is optional and can be removed by setting it to 0. The modifer keys have no pitucalr pattern associated with them, it could very well be hard coded.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6029</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6029"/>
		<updated>2014-10-08T11:52:41Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
Inside the key blocks contains a modifier and a key. The modifier is optional and can be removed by setting it to 0. The modifer keys have no pitucalr pattern associated with them, it could very well be hard coded.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6028</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6028"/>
		<updated>2014-10-08T11:51:43Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
Inside the key blocks contains a modifier and a key. The modifier is optional and can be removed by setting it to 0.  &lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6027</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6027"/>
		<updated>2014-10-08T11:49:40Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The Populous Key configuration file is located in ./saves/Key def.dat ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]) after you use the built in keys editor inside the game. The keys configuration file uses the systems keycode map to determine what keys are available to use. This website has the key codes that seem to work wit most US QWERTY keyboards [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY].&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6026</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6026"/>
		<updated>2014-10-08T11:45:36Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Populous Keys configuration file remains mostly unknown. It is believed to be clustered in 15 byte blocks, unknown if any of these blocks contain the arrow keys configuration. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6025</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6025"/>
		<updated>2014-10-08T11:43:58Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: Redirected page to Keys Configuration Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Keys_Configuration_Format]]&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6024</id>
		<title>Keys Configuration Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Keys_Configuration_Format&amp;diff=6024"/>
		<updated>2014-10-08T11:43:08Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: Created page with &amp;quot;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013.   All the addresses are correct, but typos can and will exist. If the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6023</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6023"/>
		<updated>2014-10-08T11:38:04Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6022</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6022"/>
		<updated>2014-10-08T11:37:10Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6021</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6021"/>
		<updated>2014-10-08T11:36:50Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT132&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6020</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6020"/>
		<updated>2014-10-08T11:36:20Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT132&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x|&lt;br /&gt;
|154&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6019</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6019"/>
		<updated>2014-10-08T11:34:46Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x|0x154&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6018</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6018"/>
		<updated>2014-10-08T11:34:28Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Combination keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6017</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6017"/>
		<updated>2014-10-08T11:33:53Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Combination keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x|154&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6016</id>
		<title>Key def.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Key_def.dat&amp;diff=6016"/>
		<updated>2014-10-08T11:32:45Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change Populous default keys using programming or hex editor. The file was decoded on November 23rd 2013. &lt;br /&gt;
&lt;br /&gt;
All the addresses are correct, but typos can and will exist. If there is a typo or wrong address let [[Brandan Tyler Lasley|me]] know or correct it!&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Key def.dat is a file that you have to create by using the Populous key editor included in the game ([http://www.brandanlasley.com/releases/Thread/Popre/Best%20Patches/key_def.dat Key def download]). Once you save, the file is created and it is located in ./save/Key def.dat. Each key is stored in a hexadecimal address, the combination key is always 1 in front of it. So if 1 is pause 2 will be the combination key. The combination key is like shift + key but in the file format it reads key + shift. &lt;br /&gt;
&lt;br /&gt;
Each key needs to be converted from hexadecimal to a integer. This can be done in programming by simply reading information from the address, else if you&#039;re using a hex editor (like HxD) you&#039;ll have to that by hand using a converter like [http://home.paulschou.net/tools/xlate/ Paulschou] (use the values from CHAR), once you got the number it should range from 1-105, if it exceeds that, you&#039;re reading the wrong location or you got your math wrong. In [[#In Programming]] you will be told how to convert the values from keycode (the integer number you just got) to ASCII using programming methods. If you want to change them by hand without programming, all the key definitions are on this list [http://www.penticoff.com/nb/kbds/ibm104kb.htm keycode list for US QWERTY], remember that you have to convert those numbers back to hex from the [http://home.paulschou.net/tools/xlate/ Paulschou]&#039;s link, or by [[#In Programming|programming]].&lt;br /&gt;
&lt;br /&gt;
This is not a complete decode of the file, however its most of the common key commands for Populous, if you find more, feel free to add them!&lt;br /&gt;
&lt;br /&gt;
== Combination keys ==&lt;br /&gt;
The combination keys use a different keycode format. I don&#039;t know if there is a pattern to this or if the game has custom keycodes for these.&lt;br /&gt;
&lt;br /&gt;
All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x0&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x19&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x79&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x94&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x109&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x124&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x|154&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x184&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x199&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x214&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x229&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x244&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x259&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x274&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x289&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x304&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x319&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x334&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x349&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x364&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x379&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x394&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x409&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x424&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x439&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x454&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x469&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x484&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x499&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x514&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x529&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x544&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x559&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x574&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x589&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x604&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x619&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x634&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x649&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x664&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0x679&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|709 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not all of these are tested.&lt;br /&gt;
&lt;br /&gt;
     No modifier key = 0&lt;br /&gt;
     Shift = 1&lt;br /&gt;
     Shift + CTRL (or app button) = 3&lt;br /&gt;
     CTRL = 4&lt;br /&gt;
     Shift + ALT = 5&lt;br /&gt;
     Ctrl + alt = 6&lt;br /&gt;
     Shift + ctrl + alt = 7&lt;br /&gt;
     Alt = 20&lt;br /&gt;
&lt;br /&gt;
== Available keys ==&lt;br /&gt;
&lt;br /&gt;
=== Toggle view key ===&lt;br /&gt;
     23 = Key&lt;br /&gt;
     24 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Encyclopaedia key ===&lt;br /&gt;
     38 = Key&lt;br /&gt;
     39 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 1 key ===&lt;br /&gt;
     35 = Key&lt;br /&gt;
     36 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 2 key ===&lt;br /&gt;
     68 = Key&lt;br /&gt;
     69 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 3 key ===&lt;br /&gt;
     83 = Key&lt;br /&gt;
     84 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Set Map Marker 4 key ===&lt;br /&gt;
     88 = Key&lt;br /&gt;
     99 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 1 ===&lt;br /&gt;
     113 = Key&lt;br /&gt;
     114 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 2 ===&lt;br /&gt;
     128 = Key&lt;br /&gt;
     129 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 3 ===&lt;br /&gt;
     143 = Key&lt;br /&gt;
     144 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Goto Map Marker 4 ===&lt;br /&gt;
     158 = Key&lt;br /&gt;
     159 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view in key ===&lt;br /&gt;
     173 = Key&lt;br /&gt;
     174 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom view out key ===&lt;br /&gt;
     188 = Key&lt;br /&gt;
     189 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Load key ===&lt;br /&gt;
     203 = Key&lt;br /&gt;
     204 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quick Save key ===&lt;br /&gt;
     218 = Key&lt;br /&gt;
     219 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to shaman key ===&lt;br /&gt;
     233 = Key&lt;br /&gt;
     234 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat message key ===&lt;br /&gt;
     248 = Key&lt;br /&gt;
     249 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Command Tracking key ===&lt;br /&gt;
     263 = Key&lt;br /&gt;
     264 = modifier key&lt;br /&gt;
     * Had problems w/ this key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release guarding people key ===&lt;br /&gt;
     278 = Key&lt;br /&gt;
     279 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Level Stats  key ===&lt;br /&gt;
     293 = Key&lt;br /&gt;
     294 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rotate building key ===&lt;br /&gt;
     308 = Key&lt;br /&gt;
     309 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 1 key ===&lt;br /&gt;
     323 = Key&lt;br /&gt;
     324 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 2 key ===&lt;br /&gt;
     338 = Key&lt;br /&gt;
     339 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 3 key ===&lt;br /&gt;
     353 = Key&lt;br /&gt;
     354 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 4 key ===&lt;br /&gt;
     368 = Key&lt;br /&gt;
     369 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 5 key ===&lt;br /&gt;
     383 = Key&lt;br /&gt;
     384 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Assign people to group 6 key ===&lt;br /&gt;
     398 = Key&lt;br /&gt;
     399 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 1 key ===&lt;br /&gt;
     413 = Key&lt;br /&gt;
     414 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 2 key ===&lt;br /&gt;
     428 = Key&lt;br /&gt;
     429 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 3 key ===&lt;br /&gt;
     443 = Key&lt;br /&gt;
     444 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 4 key ===&lt;br /&gt;
     458 = Key&lt;br /&gt;
     459 = modifier key&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 5 key ===&lt;br /&gt;
     473 = Key&lt;br /&gt;
     474 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Select people in group 6 key ===&lt;br /&gt;
     488 = Key&lt;br /&gt;
     489 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 1 key ===&lt;br /&gt;
     503 = Key&lt;br /&gt;
     504 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 2 key ===&lt;br /&gt;
     518 = Key&lt;br /&gt;
     519 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 3 key ===&lt;br /&gt;
     533 = Key&lt;br /&gt;
     534 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 4 key ===&lt;br /&gt;
     548 = Key&lt;br /&gt;
     549 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 5 key ===&lt;br /&gt;
     563 = Key&lt;br /&gt;
     564 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to people in group 6 key ===&lt;br /&gt;
     578 = Key&lt;br /&gt;
     579 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zoom to Reincarnation site key ===&lt;br /&gt;
     593 = Key&lt;br /&gt;
     594 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle Local Selection key ===&lt;br /&gt;
     608 = Key&lt;br /&gt;
     609 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reselect last selection key ===&lt;br /&gt;
     623 = Key&lt;br /&gt;
     624 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reorient view key ===&lt;br /&gt;
     638 = Key&lt;br /&gt;
     639 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Display last dialog key ===&lt;br /&gt;
     653 = Key&lt;br /&gt;
     654 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle auto deselect key ===&lt;br /&gt;
     668 = Key&lt;br /&gt;
     669 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call to arms key ===&lt;br /&gt;
     683 = Key&lt;br /&gt;
     684 = modifier key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scatter people key ===&lt;br /&gt;
     698 = Key&lt;br /&gt;
     699 = modifier key&lt;br /&gt;
&lt;br /&gt;
== In Programming ==&lt;br /&gt;
&lt;br /&gt;
=== VB .NET ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
Use a code [http://www.developerfusion.com/tools/convert/csharp-to-vb/ converter] to translate to C#.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&#039; Brandan Tyler Lasley&lt;br /&gt;
&#039; Populous TB Key Mapper&lt;br /&gt;
&#039; Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.IO&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    Public Declare Function GetKeyboardLayout Lib &amp;quot;user32&amp;quot; (ByVal idThread As UInteger) As IntPtr&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;User32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function GetKeyboardLayout(idThread As Integer) As IntPtr&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function MapVirtualKeyEx(uCode As Integer, uMapType As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Private Function GetKeyboardState(ByVal keyState() As Byte) As Boolean&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;DllImport(&amp;quot;user32.dll&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Function ToAsciiEx(uVirtKey As Integer, uScanCode As Integer, lpKeyState As Byte, lpChar As Integer, uFlags As Integer, dwhkl As Integer) As Integer&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Dim strings = New String() {&amp;quot;Pause&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle View&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Encyclopaedia&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Set map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto map marker 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom in&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Zoom out&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick load&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Quick save&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto shaman&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Chat/Message&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Command tracking&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Release Guarding&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle level stats&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Rotate building&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Assign units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Select units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 1&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 2&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 3&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 4&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 5&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto units to group 6&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Goto reincarnation site&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle local selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reselect last selection&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Reorient view&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Display last dialog&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Toggle auto deselect&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Call to arms&amp;quot;, _&lt;br /&gt;
                                &amp;quot;Scatter people&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
    Dim keys = New Integer() {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, _&lt;br /&gt;
                          158, 173, 188, 203, 218, 233, 248, 263, 278, _&lt;br /&gt;
                          293, 308, 323, 338, 353, 368, 383, 398, 413, _&lt;br /&gt;
                          428, 443, 458, 473, 488, 503, 518, 533, 548, _&lt;br /&gt;
                          563, 578, 593, 608, 623, 638, 653, 668, 683, _&lt;br /&gt;
                          698}&lt;br /&gt;
&lt;br /&gt;
    Dim populousin As String = My.Computer.Registry.GetValue(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning&amp;quot;, &amp;quot;InstallPath&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Sub Main()&lt;br /&gt;
&lt;br /&gt;
        Dim i = 0&lt;br /&gt;
        For Each Strs In strings&lt;br /&gt;
&lt;br /&gt;
            Dim modifier = Reader(keys(i) + 1).ToString&lt;br /&gt;
            On Error Resume Next&lt;br /&gt;
            If modifier = 0 Then&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            ElseIf modifier = 2 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL&amp;quot;&lt;br /&gt;
            ElseIf modifier = 5 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 6 Then&lt;br /&gt;
                modifier = &amp;quot;CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 7 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 3 Then&lt;br /&gt;
                modifier = &amp;quot;APP&amp;quot;&lt;br /&gt;
            ElseIf modifier = 20 Then&lt;br /&gt;
                modifier = &amp;quot;ALT&amp;quot;&lt;br /&gt;
            ElseIf modifier = 1 Then&lt;br /&gt;
                modifier = &amp;quot;SHIFT&amp;quot;&lt;br /&gt;
            Else&lt;br /&gt;
                modifier = &amp;quot;NONE&amp;quot;&lt;br /&gt;
            End If&lt;br /&gt;
            Console.WriteLine(Strs &amp;amp; &amp;quot; = &amp;quot; &amp;amp; modifier &amp;amp; &amp;quot; + &amp;quot; &amp;amp; (scan2ascii(Reader(keys(i)))).ToString &amp;amp; vbNewLine)&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Console.ReadLine()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Public Function scan2ascii(ByVal scancode)&lt;br /&gt;
        Dim hKL As IntPtr = GetKeyboardLayout(0)&lt;br /&gt;
&lt;br /&gt;
        Dim State = New Byte(255) {}&lt;br /&gt;
&lt;br /&gt;
        If GetKeyboardState(State) = False Then&lt;br /&gt;
            Return 0&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Return MapVirtualKeyEx(scancode, 1, hKL)&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Function Reader(ByVal position As Integer)&lt;br /&gt;
        Dim Keysconfig As Boolean = My.Computer.FileSystem.FileExists(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        If Keysconfig = False Then&lt;br /&gt;
            Console.Write(&amp;quot;Error: Populous keys configuration file could not be loaded, download it off the wiki and place it into ./saves/ file of pop.&amp;quot;)&lt;br /&gt;
            Console.ReadLine()&lt;br /&gt;
            End&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        Dim breader As New BinaryReader(New FileStream(populousin &amp;amp; &amp;quot;\SAVE\key_def.dat&amp;quot;, FileMode.Open))&lt;br /&gt;
        breader.BaseStream.Position = position&lt;br /&gt;
        Dim output = breader.Read&lt;br /&gt;
        breader.Close()&lt;br /&gt;
        Return output&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
This is code that will decode all the unknown keys seen above to ACSII, [http://www.theasciicode.com.ar/|ASCII table]&lt;br /&gt;
&lt;br /&gt;
This code does not automatically get PopTB&#039;s filepath.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Brandan Tyler Lasley&lt;br /&gt;
// Populous TB Key Mapper&lt;br /&gt;
// Read Populous TB key configuration keycodes, then convert it to ASCII&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;Windows.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode);&lt;br /&gt;
int bReader(int position);&lt;br /&gt;
int bWriter(int value, int position);&lt;br /&gt;
&lt;br /&gt;
string strings[50] =  {&amp;quot;Pause&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle View&amp;quot;, &lt;br /&gt;
			&amp;quot;Encyclopaedia&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Set map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto map marker 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom in&amp;quot;, &lt;br /&gt;
			&amp;quot;Zoom out&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick load&amp;quot;, &lt;br /&gt;
			&amp;quot;Quick save&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto shaman&amp;quot;, &lt;br /&gt;
			&amp;quot;Chat/Message&amp;quot;, &lt;br /&gt;
			&amp;quot;Command tracking&amp;quot;, &lt;br /&gt;
			&amp;quot;Release Guarding&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle level stats&amp;quot;, &lt;br /&gt;
			&amp;quot;Rotate building&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Assign units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Select units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 1&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 2&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 3&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 4&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 5&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto units to group 6&amp;quot;, &lt;br /&gt;
			&amp;quot;Goto reincarnation site&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle local selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reselect last selection&amp;quot;, &lt;br /&gt;
			&amp;quot;Reorient view&amp;quot;, &lt;br /&gt;
			&amp;quot;Display last dialog&amp;quot;, &lt;br /&gt;
			&amp;quot;Toggle auto deselect&amp;quot;, &lt;br /&gt;
			&amp;quot;Call to arms&amp;quot;, &lt;br /&gt;
			&amp;quot;Scatter people&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    int keys[50] = {8, 23, 38, 53, 68, 83, 98, 113, 128, 143, &lt;br /&gt;
                   158, 173, 188, 203, 218, 233, 248, 263, 278, &lt;br /&gt;
                   293, 308, 323, 338, 353, 368, 383, 398, 413, &lt;br /&gt;
                   428, 443, 458, 473, 488, 503, 518, 533, 548, &lt;br /&gt;
                   563, 578, 593, 608, 623, 638, 653, 668, 683, &lt;br /&gt;
                   698};&lt;br /&gt;
&lt;br /&gt;
int main() { &lt;br /&gt;
&lt;br /&gt;
	for (int i = 0; i &amp;lt; sizeof strings/sizeof(string) - 3; i++) {&lt;br /&gt;
	int modifiercode = bReader(keys[i] + 1);&lt;br /&gt;
	string modifier;&lt;br /&gt;
&lt;br /&gt;
	switch (modifiercode) {&lt;br /&gt;
		case 0:&lt;br /&gt;
			modifier = &amp;quot;None&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 1:&lt;br /&gt;
			modifier = &amp;quot;Shift&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			modifier = &amp;quot;CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 5:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 6:&lt;br /&gt;
			modifier = &amp;quot;CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 7:&lt;br /&gt;
			modifier = &amp;quot;SHIFT + CTRL + ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		case 20:&lt;br /&gt;
			modifier = &amp;quot;ALT&amp;quot;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
		modifier = &amp;quot;Unknown&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	 cout &amp;lt;&amp;lt; strings[i] &amp;lt;&amp;lt; &amp;quot; = &amp;quot; &amp;lt;&amp;lt; modifier &amp;lt;&amp;lt; &amp;quot; + &amp;quot; &amp;lt;&amp;lt; scantoascii(bReader(keys[i])) &amp;lt;&amp;lt; endl;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	getchar();&lt;br /&gt;
	getchar();&lt;br /&gt;
    return 0; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int scantoascii(int scancode) {&lt;br /&gt;
	static HKL layout=GetKeyboardLayout(0);&lt;br /&gt;
    static byte State[256];&lt;br /&gt;
&lt;br /&gt;
	 if (GetKeyboardState(State)==FALSE) {&lt;br /&gt;
      return 0;&lt;br /&gt;
	 }&lt;br /&gt;
   UINT vk=MapVirtualKeyEx(scancode,1,layout);&lt;br /&gt;
   return vk;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int bReader(int position) {&lt;br /&gt;
	unsigned char x;&lt;br /&gt;
	int i = 0;&lt;br /&gt;
	std::ifstream input(&amp;quot;C:\\Program Files (x86)\\Bullfrog\\Populous\\SAVE\\key_def.dat&amp;quot;, std::ios::binary);&lt;br /&gt;
	input &amp;gt;&amp;gt; std::noskipws;&lt;br /&gt;
	while (input &amp;gt;&amp;gt; x) {&lt;br /&gt;
		if (i == position) {&lt;br /&gt;
			return x;&lt;br /&gt;
		}&lt;br /&gt;
		i++;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6015</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6015"/>
		<updated>2014-10-08T10:02:37Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|SOUND&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|GAMMA&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
The volume starts at 0 and ends at 127 which is 100%&lt;br /&gt;
&lt;br /&gt;
== Gamma ==&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6014</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6014"/>
		<updated>2014-10-08T09:59:14Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|SOUND&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|GAMMA&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6013</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6013"/>
		<updated>2014-10-08T09:58:57Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|Sound&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|GAMMA&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6012</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6012"/>
		<updated>2014-10-08T09:57:52Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|GAMMA&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6011</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6011"/>
		<updated>2014-10-08T09:47:31Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: Redirected page to Populous Configuration File&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Populous_Configuration_File]]&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6010</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6010"/>
		<updated>2014-10-08T09:47:04Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: Replaced content with &amp;quot;Populous_Configuration_File&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Populous_Configuration_File]]&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6009</id>
		<title>Populous Configuration File</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=Populous_Configuration_File&amp;diff=6009"/>
		<updated>2014-10-08T09:46:52Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: Created page with &amp;quot;All numbers are stored in big-endian format!  {| class=&amp;quot;wikitable&amp;quot; !colspan=&amp;quot;6&amp;quot;|Block Format |- |Data Type |Length |Position (DEC) |Description |- |BYTE |1 |0x0 |RESOLUTION |-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6008</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6008"/>
		<updated>2014-10-08T09:46:11Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=User:Brandan_Tyler_Lasley&amp;diff=6007</id>
		<title>User:Brandan Tyler Lasley</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=User:Brandan_Tyler_Lasley&amp;diff=6007"/>
		<updated>2014-10-08T09:42:53Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox Person&lt;br /&gt;
|Name=Brandan Tyler Lasley&lt;br /&gt;
|Image=brandan.jpg&lt;br /&gt;
|Born=February 1st 1995 &#039;&#039;&#039;(19)&#039;&#039;&#039;&lt;br /&gt;
|Place=Georgia, United States&lt;br /&gt;
|Location=Portland, Oregon&lt;br /&gt;
|Nationality=Native American (Choctaw)&lt;br /&gt;
|Occupation=Computer Scientist&lt;br /&gt;
|School=Portland State University&lt;br /&gt;
|Popre Name=Brandan&lt;br /&gt;
|Website=http://brandanlasley.com&lt;br /&gt;
|PrevNicks=Brandan (2005), PopulousTheKill, Popbot, UnitedNations, Canada&lt;br /&gt;
|Status=Active&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=User:Brandan_Tyler_Lasley&amp;diff=6006</id>
		<title>User:Brandan Tyler Lasley</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=User:Brandan_Tyler_Lasley&amp;diff=6006"/>
		<updated>2014-10-08T09:41:23Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox Person&lt;br /&gt;
|Name=Brandan Tyler Lasley&lt;br /&gt;
|Image=brandan.jpg&lt;br /&gt;
|Born=February 1st 1995 &#039;&#039;&#039;(19)&#039;&#039;&#039;&lt;br /&gt;
|Place=Georgia, United States&lt;br /&gt;
|Location=Portland, Oregon&lt;br /&gt;
|Nationality=Native American (Choctaw)&lt;br /&gt;
|Occupation=Computer Scientist&lt;br /&gt;
|School=Portland Community College&lt;br /&gt;
|Popre Name=Brandan&lt;br /&gt;
|Website=http://brandanlasley.com&lt;br /&gt;
|PrevNicks=Brandan (2005), PopulousTheKill, Popbot, UnitedNations, Canada&lt;br /&gt;
|Status=Active&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6005</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6005"/>
		<updated>2014-10-08T09:19:28Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;br /&gt;
&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there. It requires a bunch of complicated system calls and dll imports, a story left for another wiki.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6004</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6004"/>
		<updated>2014-10-08T09:16:50Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;br /&gt;
&lt;br /&gt;
== Resolution ==&lt;br /&gt;
Resolution is ordered from lowest possible 640x480 to highest possible that your monitor supports.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6003</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6003"/>
		<updated>2014-10-08T09:15:58Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;br /&gt;
&lt;br /&gt;
== Resolution ==&lt;br /&gt;
This is probably a UBYTE but it also works just fine as a BYTE&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
0 = 640 x 480&lt;br /&gt;
&lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6002</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6002"/>
		<updated>2014-10-08T09:15:47Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;br /&gt;
&lt;br /&gt;
== Resolution ==&lt;br /&gt;
This is probably a UBYTE but it also works just fine as a BYTE&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
0 = 640 x 480 &lt;br /&gt;
1 = 800 x 600&lt;br /&gt;
&lt;br /&gt;
Any values higher than this purely depends on your monitor and you&#039;ll have to pull the resolution from there.&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6001</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6001"/>
		<updated>2014-10-08T09:14:09Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;br /&gt;
&lt;br /&gt;
== Resolution ==&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6000</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=6000"/>
		<updated>2014-10-08T09:13:42Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5999</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5999"/>
		<updated>2014-10-08T09:12:18Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|What it changes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177 Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5998</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5998"/>
		<updated>2014-10-08T09:11:58Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|What it changes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|177&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5997</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5997"/>
		<updated>2014-10-08T09:11:20Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|What it changes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
177 Total&lt;br /&gt;
&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5996</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5996"/>
		<updated>2014-10-08T09:02:48Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Block Format&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|What it changes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5995</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5995"/>
		<updated>2014-10-08T09:00:42Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Data Type&lt;br /&gt;
|Length&lt;br /&gt;
|Position (DEC)&lt;br /&gt;
|What it changes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5994</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5994"/>
		<updated>2014-10-08T08:59:32Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5993</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5993"/>
		<updated>2014-10-08T08:57:26Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
|BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
|INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
|INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5992</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5992"/>
		<updated>2014-10-08T08:56:01Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x0&lt;br /&gt;
|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x5&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x9&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x13&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x17&lt;br /&gt;
|-&lt;br /&gt;
INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x21&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x23&lt;br /&gt;
|-&lt;br /&gt;
INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x24&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x26&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x30&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x34&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x35&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x39&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x43&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x44&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x45&lt;br /&gt;
|-&lt;br /&gt;
INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x49&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x51&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x52&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x56&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x60&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x64&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x68&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x72&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x76&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x84&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x85&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x89&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x90&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x91&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x92&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x96&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x104&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x105&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x106&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x107&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x111&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x112&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x113&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x117&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x121&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x125&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x129&lt;br /&gt;
|-&lt;br /&gt;
BYTE&lt;br /&gt;
|1&lt;br /&gt;
|0x130&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x131&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x135&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x139&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x143&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x147&lt;br /&gt;
|-&lt;br /&gt;
INT16&lt;br /&gt;
|2&lt;br /&gt;
|0x151&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x153&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x157&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x161&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x165&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x169&lt;br /&gt;
|-&lt;br /&gt;
INT32&lt;br /&gt;
|4&lt;br /&gt;
|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
    		177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5991</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5991"/>
		<updated>2014-10-08T08:54:42Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x0|RESOLUTION&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x1&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x5&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x9&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x13&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x17&lt;br /&gt;
|-&lt;br /&gt;
INT16|2|0x21&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x23&lt;br /&gt;
|-&lt;br /&gt;
INT16|2|0x24&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x26&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x30&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x34&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x35&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x39&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x43&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x44&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x45&lt;br /&gt;
|-&lt;br /&gt;
INT16|2|0x49&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x51&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x52&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x56&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x60&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x64&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x68&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x72&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x76&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x80&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x84&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x85&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x89&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x90&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x91&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x92&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x96&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x100&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x104&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x105&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x106&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x107&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x111&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x112&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x113&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x117&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x121&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x125&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x129&lt;br /&gt;
|-&lt;br /&gt;
BYTE|1|0x130&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x131&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x135&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x139&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x143&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x147&lt;br /&gt;
|-&lt;br /&gt;
INT16|2|0x151&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x153&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x157&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x161&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x165&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x169&lt;br /&gt;
|-&lt;br /&gt;
INT32|4|0x173&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
    		177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5990</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5990"/>
		<updated>2014-10-08T08:42:59Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
    BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&lt;br /&gt;
    		177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5989</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5989"/>
		<updated>2014-10-08T08:42:35Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
    BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&lt;br /&gt;
    177 Total&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5988</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5988"/>
		<updated>2014-10-08T08:39:41Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
    BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5987</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5987"/>
		<updated>2014-10-08T08:39:15Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
[code]&lt;br /&gt;
    BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&lt;br /&gt;
[/code]&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5986</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5986"/>
		<updated>2014-10-08T08:36:56Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
    BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
	<entry>
		<id>https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5985</id>
		<title>CONFIG00.DAT</title>
		<link rel="alternate" type="text/html" href="https://wiki.popre.net/index.php?title=CONFIG00.DAT&amp;diff=5985"/>
		<updated>2014-10-08T08:36:42Z</updated>

		<summary type="html">&lt;p&gt;Brandan Tyler Lasley: /* Block Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All numbers are stored in big-endian format!&lt;br /&gt;
&lt;br /&gt;
Populous Configuration File Format&lt;br /&gt;
&lt;br /&gt;
=== Block Format ===&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;BYTE	1	0x0	RESOLUTION&lt;br /&gt;
    INT32	4	0x1&lt;br /&gt;
    INT32	4	0x5&lt;br /&gt;
    INT32	4	0x9&lt;br /&gt;
    INT32	4	0x13&lt;br /&gt;
    INT32	4	0x17&lt;br /&gt;
    INT16	2	0x21&lt;br /&gt;
    BYTE	1	0x23&lt;br /&gt;
    INT16	2	0x24&lt;br /&gt;
    INT32	4	0x26&lt;br /&gt;
    INT32	4	0x30&lt;br /&gt;
    BYTE	1	0x34&lt;br /&gt;
    INT32	4	0x35&lt;br /&gt;
    INT32	4	0x39&lt;br /&gt;
    BYTE	1	0x43&lt;br /&gt;
    BYTE	1	0x44&lt;br /&gt;
    INT32	4	0x45&lt;br /&gt;
    INT16	2	0x49&lt;br /&gt;
    BYTE	1	0x51&lt;br /&gt;
    INT32	4	0x52&lt;br /&gt;
    INT32	4	0x56&lt;br /&gt;
    INT32	4	0x60&lt;br /&gt;
    INT32	4	0x64&lt;br /&gt;
    INT32	4	0x68&lt;br /&gt;
    INT32	4	0x72&lt;br /&gt;
    INT32	4	0x76&lt;br /&gt;
    INT32	4	0x80&lt;br /&gt;
    BYTE	1	0x84&lt;br /&gt;
    INT32	4	0x85&lt;br /&gt;
    BYTE	1	0x89&lt;br /&gt;
    BYTE	1	0x90&lt;br /&gt;
    BYTE	1	0x91&lt;br /&gt;
    INT32	4	0x92&lt;br /&gt;
    INT32	4	0x96&lt;br /&gt;
    INT32	4	0x100&lt;br /&gt;
    BYTE	1	0x104&lt;br /&gt;
    BYTE	1	0x105&lt;br /&gt;
    BYTE	1	0x106&lt;br /&gt;
    INT32	4	0x107&lt;br /&gt;
    BYTE	1	0x111&lt;br /&gt;
    BYTE	1	0x112&lt;br /&gt;
    INT32	4	0x113&lt;br /&gt;
    INT32	4	0x117&lt;br /&gt;
    INT32	4	0x121&lt;br /&gt;
    INT32	4	0x125&lt;br /&gt;
    BYTE	1	0x129&lt;br /&gt;
    BYTE	1	0x130&lt;br /&gt;
    INT32	4	0x131&lt;br /&gt;
    INT32	4	0x135&lt;br /&gt;
    INT32	4	0x139&lt;br /&gt;
    INT32	4	0x143&lt;br /&gt;
    INT32	4	0x147&lt;br /&gt;
    INT16	2	0x151&lt;br /&gt;
    INT32	4	0x153&lt;br /&gt;
    INT32	4	0x157&lt;br /&gt;
    INT32	4	0x161&lt;br /&gt;
    INT32	4	0x165&lt;br /&gt;
    INT32	4	0x169&lt;br /&gt;
    INT32	4	0x173&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
All parameters must be read in this exact order&lt;/div&gt;</summary>
		<author><name>Brandan Tyler Lasley</name></author>
	</entry>
</feed>