[VM] EXE : Useful Alphanumeric Data Segments
[VM] EXE : Useful Alphanumeric Data Segments
==============
Introduction
Absolute Prerequisites
viewtopic.php?f=100&t=552#p9053
Folder & File Descriptors
viewtopic.php?f=100&t=552#p9054
Files: Root & Extension Descriptors
viewtopic.php?f=100&t=552#p9055
Side Descriptors
viewtopic.php?f=100&t=552#p9056
New Half-Turn Descriptors
viewtopic.php?f=100&t=552#p9057
Unit Target Descriptors
viewtopic.php?f=100&t=552#p9058
Unit Class Descriptors
viewtopic.php?f=100&t=552#p9061
Unit Movement Type Descriptors
viewtopic.php?f=100&t=552#p9062
Flash Message Descriptors
viewtopic.php?f=100&t=552#p9063
===================================================================
The topic's contents may be modified or progressively added upon as time goes by.
===================================================================
INTRODUCTION
==============
Kindly review:
Introduction
viewtopic.php?f=100&t=536#p8929
PGF's "heart" beats inside its one and only executable file, PGFOREVER.EXE. This is a binary file which is often referred to as PGF's "engine". The executable file's most recently released version is 1.02 (May 28, 2012); it is 753,664 bytes long. The file is located at the root of PGF's "nested" folder structure (together with file HTMLAYOUT.DLL).
In a perfect coding world, content data would have no place residing inside an executable. Well, codewise, PGF's executable is far from being perfect; it contains oodles of "concealed" content data...
When it comes to embedded Alphanumeric data, their coding is sloppy, even primitive. Worse, Alphanumeric values are "restrictively anchored and asphyxiatingly packed" to the point of binary... sclerosis ! All in all, this is "seat-of-the-pants, pre-alpha" coding !
ABSOLUTE PREREQUISITES
=======================
Engine Hexadecimal Character Strings
viewtopic.php?f=100&t=536#p8935
Hexadecimal Code... Surgery (Part I)
viewtopic.php?f=100&t=536#p8933
FOLDER & FILE DESCRIPTORS
=========================
Location
The null-terminated, 16-bit Alphanumeric descriptors are lodged in various code locations.
Modder Interface Functionality
PGF's files and folders are an integral part of the wargame's Modder Interface (MI).
Content
Folder Descriptors
LOG Folder Descriptor
Commences at decimal offset 531088.
Code: Select all
4C 00 6F 00 67 00
00 00
REPLAY Folder Descriptor
Commences at decimal offset 531096.
Code: Select all
52 00 65 00 70 00 6C 00 61 00 79 00 00 00
00 00
SAVE Folder Descriptor
Commences at decimal offset 531112.
Code: Select all
53 00 61 00 76 00 65 00 00 00
00 00
SOUND Folder Descriptor
Commences at decimal offset 531124.
Code: Select all
53 00 6F 00 75 00 6E 00 64 00
00 00
UI Folder Descriptor
Commences at decimal offset 531136.
Code: Select all
55 00 49 00 00 00
00 00
GRAPHICS Folder Descriptor
Commences at decimal offset 531144.
Code: Select all
47 00 72 00 61 00 70 00 68 00 69 00 63 00 73 00 00 00
00 00
SCENARIO Folder Descriptor
Commences at decimal offset 531164.
Code: Select all
53 00 63 00 65 00 6E 00 61 00 72 00 69 00 6F 00 00 00
00 00
DEFAULT Folder Descriptor
Commences at decimal offset 531228.
Code: Select all
5C 00 64 00 65 00 66 00 61 00 75 00 6C 00 74 00 5C 00
00 00
DEFAULT Folder Descriptor
Commences at decimal offset 531228.
Code: Select all
5C 00 64 00 65 00 66 00 61 00 75 00 6C 00 74 00 5C 00
00 00
Alternate LOG Folder Descriptor
Commences at decimal offset 531184.
Code: Select all
5C 00 00 00 5C 00 4C 00 6F 00 67 00 00 00
00 00
Selected File Descriptors
LOG.TXT File Descriptor
Commences at decimal offset 531256.
Code: Select all
5C 00 6C 00 6F 00 67 00 2E 00 74 00 78 00 74 00 00 00
00 00
AUTOSAVE Side-0 File Descriptor
Commences at decimal offset 541040.
Code: Select all
41 00 75 00 74 00 6F 00 73 00 61 00 76 00 65 00 20 00 28 00 41 00 78 00 69 00 73 00 29 00 2E 00 70 00 67 00 73 00 61 00 76 00 00 00 00 00
00 00
AUTOSAVE Side-1 File Descriptor
Commences at decimal offset 540992.
Code: Select all
41 00 75 00 74 00 6F 00 73 00 61 00 76 00 65 00 20 00 28 00 41 00 6C 00 6C 00 69 00 65 00 73 00 29 00 2E 00 70 00 67 00 73 00 61 00 76 00
00 00
FILES: ROOT & EXTENSION DESCRIPTORS
====================================
Location
The null-terminated, 16-bit Alphanumeric descriptors are lodged in various code locations.
Modder Interface Functionality
A file descriptor generally consists of two parts separated by a period. The part to the immediate left of the period is the file root. The part to the immediate right of the period is the file extension.
PGF files' roots and extensions are an integral part of the wargame's Modder Interface (MI).
Content
File Extension Descriptors
WAV File Extension Descriptor
Commences at decimal offset 532144.
Code: Select all
2E 00 77 00 61 00 76 00 00 00
00 00
MP3 File Extension Descriptor
Commences at decimal offset 532156.
Code: Select all
2E 00 4D 00 50 00 33 00 00 00
00 00
File Root Descriptors
Multimedia Files
Absolute Prerequisite:
Multimedia Files
viewtopic.php?f=100&t=546
AIR (Propeller Driven) Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 531876.
Code: Select all
61 00 69 00 72 00
00 00
AIR (Jet Engine Driven) Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533436.
Code: Select all
4A 00 45 00 54 00
00 00
LEG Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533488.
Code: Select all
4C 00 45 00 47 00
00 00
NAVAL Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533444.
Code: Select all
6E 00 61 00 76 00 61 00 6C 00
00 00
TRACKED Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533456.
Code: Select all
74 00 72 00 61 00 63 00 6B 00 65 00 64 00
00 00
WHEELED Movement File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533472.
Code: Select all
77 00 68 00 65 00 65 00 6C 00 65 00 64 00
00 00
EXPLOSION Sound File Root Descriptor
File Extension: "WAV"
Commences at decimal offset 533420.
Code: Select all
65 00 78 00 70 00 6C 00 6F 00 64 00 65 00
00 00
INTRO Music Track File Root Descriptor
File Extension: "MP3"
Commences at decimal offset 577744.
Code: Select all
54 00 72 00 61 00 63 00 6B 00 30 00 00 00
00 00
IN-GAME Music Track File Root Descriptor
File Extension: "MP3"
Commences at decimal offset 533404.
Code: Select all
54 00 72 00 61 00 63 00 6B 00 32 00 00 00
00 00
SIDE DESCRIPTORS
================
Location
The null-terminated, 16-bit Alphanumeric descriptors span decimal offsets 531464 - 531491. Their code segment is 28 bytes long. It comprises TWO (2) descriptor values.
User Interface Functionality
Unfortunately, the embedded Side descriptor values appear in the context of PGF's User Interface (UI). They are visually present in white letters on the screen with the black background ("NEW HALF-TURN") which displays some introductory information regarding the half-turn that is about to start. They also immediately precede in-game, flash messages regarding "Side Commanders".
Content
Side 0 Descriptor
Commences at decimal offset 531464.
Code: Select all
41 00 78 00 69 00 73 00 00 00
00 00
Side 1 Descriptor
Commences at decimal offset 531476.
Code: Select all
41 00 6C 00 6C 00 69 00 65 00 64 00 00 00
00 00
NEW HALF-TURN DESCRIPTORS
===========================
Location
The null-terminated, 16-bit Alphanumeric descriptors are encountered in THREE (3) separate code locations:
a) Calendar Month descriptors span decimal offsets 530804-530987. Their code segment is 184 bytes long. It comprises TWELVE (12) descriptor values. The values appear in reverse "canonical" order.
b) Weather Conditions descriptors span decimal offsets 530988-531087. Their code segment is 100 bytes long. It comprises SEVEN (12) descriptor values. The values appear in reverse "canonical" order.
c) Additional descriptors span decimal offsets 531784 - 531843. Their code segment is 60 bytes long. It comprises TWO (2) descriptor values.
User Interface Functionality
Unfortunately, the embedded New Half-Turn descriptor values appear in the context of PGF's User Interface (UI). They are visually present in white letters on the screen with the black background ("NEW HALF-TURN") which displays some introductory information regarding the half-turn that is about to start. The Weather Conditions descriptor values are also displayed in-game on the upper-right portion of the screen.
Content
Proactively presented as per the "Appropriate Canonical Order":
Calendar Month Descriptors
JANUARY Descriptor
Commences at decimal offset 530972.
Code: Select all
4A 00 61 00 6E 00 75 00 61 00 72 00 79 00
00 00
FEBRUARY Descriptor
Commences at decimal offset 530952.
Code: Select all
46 00 65 00 62 00 72 00 75 00 61 00 72 00 79 00 00 00
00 00
MARCH Descriptor
Commences at decimal offset 530940.
Code: Select all
4D 00 61 00 72 00 63 00 68 00
00 00
APRIL Descriptor
Commences at decimal offset 530928.
Code: Select all
41 00 70 00 72 00 69 00 6C 00
00 00
MAY Descriptor
Commences at decimal offset 530920.
Code: Select all
4D 00 61 00 79 00
00 00
JUNE Descriptor
Commences at decimal offset 530908.
Code: Select all
4A 00 75 00 6E 00 65 00 00 00
00 00
JULY Descriptor
Commences at decimal offset 530896.
Code: Select all
4A 00 75 00 6C 00 79 00 00 00
00 00
AUGUST Descriptor
Commences at decimal offset 530880.
Code: Select all
41 00 75 00 67 00 75 00 73 00 74 00 00 00
00 00
SEPTEMBER Descriptor
Commences at decimal offset 530860.
Code: Select all
53 00 65 00 70 00 74 00 65 00 6D 00 62 00 65 00 72 00
00 00
OCTOBER Descriptor
Commences at decimal offset 530844.
Code: Select all
4F 00 63 00 74 00 6F 00 62 00 65 00 72 00
00 00
NOVEMBER Descriptor
Commences at decimal offset 530824.
Code: Select all
4E 00 6F 00 76 00 65 00 6D 00 62 00 65 00 72 00 00 00
00 00
DECEMBER Descriptor
Commences at decimal offset 530804.
Code: Select all
44 00 65 00 63 00 65 00 6D 00 62 00 65 00 72 00 00 00
00 00
Weather Conditions Descriptors
CLEAR SKIES Descriptor
Commences at decimal offset 531076.
Code: Select all
43 00 6C 00 65 00 61 00 72 00
00 00
OVERCAST SKIES Descriptor
Commences at decimal offset 531056.
Code: Select all
4F 00 76 00 65 00 72 00 63 00 61 00 73 00 74 00 00 00
00 00
RAIN Descriptor
Commences at decimal offset 531040.
Code: Select all
52 00 61 00 69 00 6E 00 69 00 6E 00 67 00
00 00
SNOW Descriptor
Commences at decimal offset 531024.
Code: Select all
53 00 6E 00 6F 00 77 00 69 00 6E 00 67 00
00 00
DRY GROUND Descriptor
Commences at decimal offset 531016.
Code: Select all
44 00 72 00 79 00
00 00
MUDDY GROUND Descriptor
Commences at decimal offset 531004.
Code: Select all
4D 00 75 00 64 00 64 00 79 00
00 00
FROZEN GROUND Descriptor
Commences at decimal offset 530988.
Code: Select all
46 00 72 00 6F 00 7A 00 65 00 6E 00 00 00
00 00
Additional Descriptors
Last Turn Descriptor
Commences at decimal offset 531784.
Code: Select all
4C 00 61 00 73 00 74 00 20 00 54 00 75 00 72 00 6E 00
00 00
Turns Remaining Descriptor
Commences at decimal offset 531810.
Code: Select all
74 00 75 00 72 00 6E 00 73 00 20 00 72 00 65 00 6D 00 61 00 69 00 6E 00 69 00 6E 00 67 00 00 00
00 00
UNIT TARGET DESCRIPTORS
========================
Absolute Prerequisite
Unit Target Types
viewtopic.php?f=100&t=547#p8994
Location
The null-terminated, 16-bit Alphanumeric descriptors span decimal offsets 524924 - 524967. Their code segment is 44 bytes long. It comprises FOUR (4) descriptor values.
User Interface Functionality
Unfortunately, the embedded Unit Target Type descriptor values appear in the context of PGF's User Interface (UI). They are visually present to the immediate right of a unit's "Target Type" caption displayed on both Unit Stats and Unit Purchase screens.
Content
Proactively presented as per the "Unit Target Type Canonical Order":
Soft Target Descriptor
Commences at decimal offset 524956.
Code: Select all
53 00 6F 00 66 00 74 00 00 00
00 00
Hard Target Descriptor
Commences at decimal offset 524944.
Code: Select all
48 00 61 00 72 00 64 00 00 00
00 00
Air Target Descriptor
Commences at decimal offset 524944.
Code: Select all
41 00 69 00 72 00
00 00
Naval Target Descriptor
Commences at decimal offset 524924.
Code: Select all
4E 00 61 00 76 00 61 00 6C 00
00 00
Brief Commentary
Code neatly observing the "Unit Target Type Canonical Order" ? Well, I guess it would have been too much to ask...
UNIT CLASS DESCRIPTORS
=======================
Absolute Prerequisite
Unit Classes
viewtopic.php?f=100&t=547#p8995
Location
The null-terminated, 16-bit Alphanumeric descriptors do not occupy some contiguous code space. There are EIGHTEEN (18) descriptor values.
User Interface Functionality
Unfortunately, the embedded Unit Class descriptor values appear in the context of PGF's User Interface (UI). They are visually present immediately below a unit's "Type Descriptor" caption which is located just below the unit's image displayed on the Unit Information screen.
Content
Proactively presented as per the "Unit Class Canonical Order":
Infantry Class Descriptor
Commences at decimal offset 525488.
Code: Select all
49 00 6E 00 66 00 61 00 6E 00 74 00 72 00 79 00
00 00
Tank Class Descriptor
Commences at decimal offset 525476.
Code: Select all
54 00 61 00 6E 00 6B 00 00 00
00 00
Recon Class Descriptor
Commences at decimal offset 525464.
Code: Select all
52 00 65 00 63 00 6F 00 6E 00
00 00
Anti-Tank Class Descriptor
Commences at decimal offset 525172.
Code: Select all
41 00 6E 00 74 00 69 00 20 00 54 00 61 00 6E 00 6B 00
00 00
Artillery Class Descriptor
Commences at decimal offset 525436.
Code: Select all
41 00 72 00 74 00 69 00 6C 00 6C 00 65 00 72 00 79 00
00 00
Anti-Air Class Descriptor
Commences at decimal offset 525144.
Code: Select all
41 00 6E 00 74 00 69 00 20 00 41 00 69 00 72 00 63 00 72 00 61 00 66 00 74 00
00 00
Air Defense Class Descriptor
Commences at decimal offset 525120.
Code: Select all
41 00 69 00 72 00 20 00 44 00 65 00 66 00 65 00 6E 00 73 00 65 00
00 00
Structure Class Descriptor
Commences at decimal offset 525092.
Code: Select all
46 00 6F 00 72 00 74 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 6F 00 6E 00
00 00
Fighter Class Descriptor
Commences at decimal offset 525392.
Code: Select all
46 00 69 00 67 00 68 00 74 00 65 00 72 00
00 00
Tactical Bomber Class Descriptor
Commences at decimal offset 525060.
Code: Select all
54 00 61 00 63 00 74 00 69 00 63 00 61 00 6C 00 20 00 42 00 6F 00 6D 00 62 00 65 00 72 00
00 00
Level Bomber Class Descriptor
Commences at decimal offset 525032.
Code: Select all
4C 00 65 00 76 00 65 00 6C 00 20 00 42 00 6F 00 6D 00 62 00 65 00 72 00 00 00
00 00
Submarine Class Descriptor
Commences at decimal offset 525332.
Code: Select all
53 00 75 00 62 00 6D 00 61 00 72 00 69 00 6E 00 65 00
00 00
Destroyer Class Descriptor
Commences at decimal offset 525312.
Code: Select all
44 00 65 00 73 00 74 00 72 00 6F 00 79 00 65 00 72 00
00 00
Capital Ship Class Descriptor
Commences at decimal offset 525004.
Code: Select all
43 00 61 00 70 00 69 00 74 00 61 00 6C 00 20 00 53 00 68 00 69 00 70 00 00
00 00
Aircraft Carrier Class Descriptor
Commences at decimal offset 524968.
Code: Select all
41 00 69 00 72 00 63 00 72 00 61 00 66 00 74 00 20 00 43 00 61 00 72 00 72 00 69 00 65 00 72 00 00 00
00 00
Land Transport Class Descriptor
Commences at decimal offset 525248.
Code: Select all
4C 00 61 00 6E 00 64 00 20 00 54 00 72 00 61 00 6E 00 73 00 70 00 6F 00 72 00 74 00 00 00
00 00
Air Transport Class Descriptor
Commences at decimal offset 525220.
Code: Select all
41 00 69 00 72 00 20 00 54 00 72 00 61 00 6E 00 73 00 70 00 6F 00 72 00 74 00
00 00
Naval Transport Class Descriptor
Commences at decimal offset 525192.
Code: Select all
53 00 65 00 61 00 20 00 54 00 72 00 61 00 6E 00 73 00 70 00 6F 00 72 00 74 00
00 00
Brief Commentary
Code neatly observing the "Unit Class Canonical Order" ? Well, I guess it would have been too much to ask...
UNIT MOVEMENT TYPE DESCRIPTORS
=================================
Absolute Prerequisite
Unit Movement Types
viewtopic.php?f=100&t=547#p8998
Location
The null-terminated, 16-bit Alphanumeric descriptors span decimal offsets 524804 - 524943. Their code segment is 140 bytes long. It comprises ELEVEN (11) descriptor values.
User Interface Functionality
Unfortunately, the embedded Unit Movement Type descriptor values appear in the context of PGF's User Interface (UI). They are visually present to the immediate right of a unit's "Movement" value caption displayed on both Unit Information and Unit Purchase screens. These descriptors are always enclosed in parentheses.
Content
Proactively presented as per the "Unit Movement Type Canonical Order":
Tracked MT Descriptor
Commences at decimal offset 524912.
Code: Select all
54 00 72 00 61 00 63 00 6B 00
00 00
Half-Tracked MT Descriptor
Commences at decimal offset 524892.
Code: Select all
48 00 61 00 6C 00 66 00 2D 00 74 00 72 00 6B 00 00 00
00 00
Wheeled MT Descriptor
Commences at decimal offset 524880.
Code: Select all
57 00 68 00 65 00 65 00 6C 00
00 00
Leg MT Descriptor
Commences at decimal offset 524880.
Code: Select all
4C 00 65 00 67 00
00 00
Towed MT Descriptor
Commences at decimal offset 524860.
Code: Select all
54 00 6F 00 77 00 65 00 64 00
00 00
Air MT Descriptor
Commences at decimal offset 524936.
Code: Select all
41 00 69 00 72 00
00 00
Naval MT Descriptor
Commences at decimal offset 524924.
Code: Select all
4E 00 61 00 76 00 61 00 6C 00
00 00
All-Terrain MT Descriptor
Commences at decimal offset 524844.
Code: Select all
41 00 6C 00 6C 00 2D 00 54 00 72 00 6E 00
00 00
Tracked Amphibious MT Descriptor
Commences at decimal offset 524844.
Code: Select all
41 00 6D 00 74 00 72 00 61 00 63 00 00 00
00 00
All-Terrain Amphibious MT Descriptor
Commences at decimal offset 524816.
Code: Select all
53 00 65 00 65 00 70 00 00 00
00 00
Mountaineer MT Descriptor
Commences at decimal offset 524804.
Code: Select all
4D 00 6F 00 75 00 6E 00 74 00
00 00
Brief Commentary
Code neatly observing the "Unit Movement Type Canonical Order" ? Well, I guess it would have been too much to ask...
FLASH MESSAGE DESCRIPTORS
===========================
Location
The null-terminated, 16-bit Alphanumeric descriptors are lodged in various code locations. There are TWELVE (12) descriptor values.
User Interface Functionality
Unfortunately, the embedded Flash Message descriptor values appear in the context of PGF's User Interface (UI). They are visually displayed on the Tactical Map screen momentarily (i.e., flash messages), right on the heels of certain combat outcomes.
Content
Neutralization Descriptor
Commences at decimal offset 537304.
Code: Select all
4F 00 42 00 4A 00 45 00 43 00 54 00 20 00 4E 00 45 00 55 00 54 00 52 00 41 00 4C 00 49 00 5A 00 45 00 44 00 00 00
00 00
Prestige Loss Descriptor
Commences at decimal offset 537184.
Code: Select all
25 00 73 00 20 00 63 00 6F 00 6D 00 6D 00 61 00 6E 00 64 00 65 00 72 00 20 00 6C 00 6F 00 73 00 65 00 73 00 20 00 25 00 64 00 20 00 70 00 72 00 65 00 73 00 74 00 69 00 67 00 65 00 00 00
00 00
Thwarted Attack Descriptor
Commences at decimal offset 539456.
Code: Select all
41 00 74 00 74 00 61 00 63 00 6B 00 20 00 42 00 72 00 6F 00 6B 00 65 00 6E 00 20 00 4F 00 66 00 66 00 21 00 00 00
00 00
Thwarted Attack Descriptor
Commences at decimal offset 539496.
Code: Select all
41 00 74 00 74 00 61 00 63 00 6B 00 20 00 42 00 72 00 6F 00 6B 00 65 00 6E 00 20 00 55 00 70 00 21 00
00 00
Surrender Descriptor
Commences at decimal offset 539532.
Code: Select all
53 00 55 00 52 00 52 00 45 00 4E 00 44 00 45 00 52 00 53 00 21 00 00 00 00 00
00 00
Rugged Defense Descriptor
Commences at decimal offset 539268.
Code: Select all
52 00 55 00 47 00 47 00 45 00 44 00 20 00 44 00 45 00 46 00 45 00 4E 00 53 00 45 00 21 00
00 00
Surprise Air Combat Descriptor
Commences at decimal offset 539200.
Code: Select all
4F 00 55 00 54 00 20 00 4F 00 46 00 20 00 54 00 48 00 45 00 20 00 53 00 55 00 4E 00 21 00
00 00
Surprise Naval Combat Descriptor
Commences at decimal offset 539232.
Code: Select all
53 00 55 00 52 00 50 00 52 00 49 00 53 00 45 00 20 00 43 00 4F 00 4E 00 54 00 41 00 43 00 54 00 21 00
00 00
Dislodged Naval Unit Descriptor
Commences at decimal offset 536704.
Code: Select all
46 00 4C 00 45 00 45 00 49 00 4E 00 47 00 20 00 50 00 4F 00 52 00 54 00 21 00
00 00
Scuttled Naval Unit Descriptor
Commences at decimal offset 536732.
Code: Select all
53 00 48 00 49 00 50 00 20 00 49 00 53 00 20 00 53 00 43 00 55 00 54 00 54 00 4C 00 45 00 44 00 21 00
00 00
Diving Submarine Descriptor
Commences at decimal offset 536632.
Code: Select all
53 00 55 00 42 00 4D 00 41 00 52 00 49 00 4E 00 45 00 20 00 44 00 49 00 56 00 45 00 53 00 21 00 00 00
00 00
Evading Submarine Descriptor
Commences at decimal offset 536668.
Code: Select all
53 00 55 00 42 00 4D 00 41 00 52 00 49 00 4E 00 45 00 20 00 45 00 56 00 41 00 44 00 45 00 53 00 21 00
00 00