The Decoding News

See what Deadlock fans are creating, whether it be fan games, art or scenarios.
User avatar
Tggtt
Ancient
Ancient
Posts: 259
Joined: Sun Oct 06, 2013 8:08 pm

Re: The Decoding News

Post by Tggtt »

After questions on abilities, I decided to post this.

I do not know the meaning of every row. I am sorry.
From 1 to 25, they are multiplying percents (so you multiply them and divide by 100).
Rows that have -1 numbers are additive (so you just add them).
I hope this clarifies some questions at least.

How to find:
Open the executable with hex editor.
There are a sequence of 8 d's, like
"d d d d d d d d" | 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00

64 means 100. They are signed short integers.
Each one of the 8 are for one race plus the "no special ability" setting (last).
There are 54 rows.

Example from Deadlock 1, 1.31, at 0x499184 of Base address, 0x7F584 of container address (.EXE)
So, if you use the editor to show them as a table of signed short values aligned in 8:

Code: Select all

#      A	B	C	D	E	F	G	H		
1	100	100	100	100	100	100	100	100	
2	100	100	100	100	100	100	100	100	
3	120	100	100	100	100	100	100	100	
4	100	100	100	100	100	100	150	100	
5	100	100	100	100	100	100	150	100	
6	75	100	100	150	100	100	100	100	
7	100	100	100	150	100	100	100	100	
8	100	100	100	100	100	100	100	100	
9	100	100	150	100	100	100	100	100	
10	100	100	100	100	100	100	100	100	
11	100	100	100	100	100	100	100	100	
12	110	100	100	125	100	100	100	100	
13	100	100	100	100	100	150	125	100	
14	100	100	100	100	100	100	150	100	
15	100	100	150	100	100	100	100	100	
16	100	100	100	100	100	100	150	100	
17	100	100	100	100	100	100	100	100	
18	100	100	100	100	100	100	100	100	
19	200	100	100	100	100	100	100	100	
20	150	100	100	100	100	100	100	100	
21	70	75	125	100	100	100	80	100	
22	20	0	20	30	20	20	20	20	
23	10	0	10	15	10	10	10	10	
24	0	0	0	0	0	1	0	0	
25	-1	0	0	0	0	1	0	0	
26	0	3	0	0	0	0	0	0	
27	0	0	0	0	9	0	0	0	
28	0	0	100	0	0	0	0	0	
29	0	0	0	0	0	1	0	0	
30	0	0	0	0	0	0	0	0	
31	0	0	0	0	-1	2	0	0	
32	0	0	0	0	0	0	0	0	
33	0	0	0	0	0	0	0	0	
34	0	0	0	0	0	-1	0	0	
35	0	0	0	0	0	-2	0	0	
36	0	0	0	0	0	0	0	0	
37	0	0	0	0	0	0	0	0	
38	0	0	0	0	-1	1	0	0	
39	0	0	0	0	-1	1	0	0	
40	0	0	0	0	0	0	0	0	
41	-1	0	0	0	0	0	0	0	
42	0	0	0	0	1	0	0	0	
43	10	10	10	10	10	30	10	10	
44	0	0	0	10	0	0	0	0	
45	20	20	20	20	20	20	20	20	
46	100	100	150	100	100	100	100	100	
47	0	0	0	0	1	0	0	0	
48	0	0	-1	0	0	0	0	0	
49	0	0	0	0	0	0	1	0	
50	0	0	0	1	0	0	0	0	
51	0	1	0	0	0	0	0	0	
52	0	0	0	0	0	0	50	0	
53	0	0	0	1	0	0	0	0	
54	1	0	0	0	0	0	0	0	
A:ChCh't
B:Cyth
C:Human
D:Maug
E:Re'lu
F:Tarth
G:Uva Mosk
H:No Racial Ability

Known rows:
3: Building construction modifier.
4: Iron mining modifier.
5: Endurium mining modifier.
6: Research modifier.
15: Trading income modifier.
16: Morale (unsure how it multiplies).
19: Housing population capacity
20: Population Growth Modifier
21: Tax income modifier.
24: Ground unit attack bonus.
25: Ground unit defense bonus.
34: Naval unit attack bonus.
35: Naval unit defense bonus.

I might add more known rows later. Thanks.
sdu754
Advisor
Advisor
Posts: 55
Joined: Mon Nov 28, 2011 4:50 pm
Favourite Race: Re'Lu

Re: The Decoding News

Post by sdu754 »

7 Electronic, Maug +50%
12 unit build modifier, ChCh't +10% Maug +25%
13 food, Tarth get, +50% & Uva Mosk +25%
26 is the Cyth mind blast
27 Re'Lu Mind Control
28 Human berserk
29 Tarth Juggernaut
31 Vehicle defense (30 is most likely vehicle attack)
22 & 23 Have to do with morale as the Cyth have a 0 & 0 and the Maug have a 30 & 15 and everyone else has a 20 & 10. The Maug recover Morale more slowly, and the Cyth recover instantaneously.
4, 5, 14 & 16 Are the +50% Uva Mosk multipliers. 14 is most likely wood & 16 is most likely energy
43 & 44 have to do with spying 43 is most likely "get caught" & 44 is probably a multiplier for Maug having the best spies
9, 15 & 46 all have a +50% for humans, could it be trade in the various buildings?
47 Re'Lu Subvert Morale
48 Human -1 transportation cost
49 Uva Mosk infantry spy order or Shaman Dance
50 Maug Sabotage or better at stealing technology
51 Cyth Poison Land
52 Uva Mosk infantry spy order or Shaman Dance
53 Maug Sabotage or better at stealing technology
54 ChCh't steal resources


These are what the various lines could be or have to be from what I know
User avatar
Tggtt
Ancient
Ancient
Posts: 259
Joined: Sun Oct 06, 2013 8:08 pm

Re: The Decoding News

Post by Tggtt »

sdu754 wrote:These are what the various lines could be or have to be from what I know
Sorry for late reply, I have been really busy.
Many thanks sdu754,
This is a very nice contribution to add.

I will try to confirm these values, however, remember that we often use the guide book instead (I cannot post the pages here due to copyright).

I can add more table dumps later as well, I am currently interested on building and resource processing now, I have almost everything covered, so it should be interesting for the community to see it as well.

This is my post number 200, I didn't expect to pass everyone else here.

[edit]

Here I have a new table for you:
Unit cost table, it's a signed integer (32 bit) table.
Container Offset: 7EB98 (DL1 1.31)
There are 11 Columns, 24 Rows, 4 Bytes each element, total: 1056 Bytes.
What is interesting here: There might have been CANCELLED UNITS, check numbers 19 to 21.
There is another hypothesis: They might represent the defense towers, which are treated as buildings.

Columns:
A: Credits
B: Food
C: Energy
D: Wood
E: Iron
F: Steel
G: Endurium
H: Triidium
I: Electronics
J: Anti-Matter Pods
K: Art Objects

Rows:
00: No Unit
01: Laser Squad
02: SAM Trooper
03: Battle Trooper
04: Assault Trooper
05: Laser Cannon
06: Fusion Cannon
07: Disruptor Cannon
08: Holocaust Cannon
09: Turbo Wing Fighter
10: Starflare Bomber
11: Supernova Spyjet
12: Sea Transport
13: Shockwave Dreadnought
14: Shockwave Carrier
15: Command Corps
16: Scatterpack Warhead
17: Groundbreaker Warhead
18: Supernova Warhead
19: ?
20: ?
21: ?
22: Militia
23: Scout
24: Colonizer

Code: Select all

                 A           B           C           D           E           F           G           H           I           J           K
00:              0           0           0           0           0           0           0           0           0           0           0
01:             35           0           0           0           0           0           0           0           0           0           0
02:             60           0           0           0          10           0           0           0           5           0           0
03:            100           0           0           0          25           0           0           0           8           0           0
04:            200           0           0           0          50           0           0           0          10           0           0
05:             75           0           0           0          25           0           0           0           0           0           0
06:            100           0           0           0          50           0           0           0           0           0           0
07:            200           0           0           0         100           0           0           0           5          10           0
08:            500           0           0           0         250           0           0           0          10          20           0
09:             75           0           0           0          50           0           0           0           0           0           0
10:            100           0           0           0         100           0           0           0          10           0           0
11:            250           0           0           0         250           0           0           0          20          10           0
12:             50           0           0           0          25           0           0           0           0           0           0
13:            150           0           0           0         100           0           0           0           0           0           0
14:            350           0           0           0         200           0           0           0           0          10           0
15:            250           0           0           0           5           0           0           0           5           0           0
16:            100           0           0           0          25           0           0           0           0           0           0
17:            125           0           0           0          50           0           0           0           5          10           0
18:            150           0           0           0         100           0           0           0          10          20           0
19:              0           0           0           0           0           0           0           0           0           0           0
20:              0           0           0           0           0           0           0           0           0           0           0
21:              0           0           0           0           0           0           0           0           0           0           0
22:              0           0           0           0           0           0           0           0           0           0           0
23:            100           0           0           0          10           0           0           0           1           0           0
24:             50           0           0          10           0           0           0           0           0           0           0  
klenski
Hatchling
Hatchling
Posts: 5
Joined: Wed May 08, 2019 10:15 am
Favourite Race: Uva Mosk

Re: The Decoding News

Post by klenski »

Tggtt wrote: Sat Feb 23, 2019 5:38 pm There are 11 Columns, 24 Rows, 4 Bytes each element, total: 1056 Bytes.
You made a mistake, there are 25 rows, for a total of 1100 Bytes.
You started with line "0", because of offset logical.
klenski
Hatchling
Hatchling
Posts: 5
Joined: Wed May 08, 2019 10:15 am
Favourite Race: Uva Mosk

Re: The Decoding News

Post by klenski »

Offset is decimal
Value is hexadecimal
Deadlock.exe - english version 1.31

====================
Offset 520184 (hex = 7EFF8) : Beginning of technology research list
Number of researches : 36
Length of a research : 40 bytes

Offset 1 -> 4 : <32 bits unsigned> or <32 bits float>
Reference of technology research

Research 01 : 97994900 = None
Research 02 : 9F994900 = Nuclear Fusion
Research 03 : AE994900 = Synthetic Fertilizer
Research 04 : C3994900 = Electronics
Research 05 : CF994900 = Metallurgy
Research 06 : 9A984900 = Fusion Cannon
Research 07 : DA499900 = Shockwave Projector
Research 08 : EE994900 = Molecular Bonding
Research 09 : 009A4900 = Surface To Air Missile
Research 10 : 189A4900 = Rocketry
Research 11 : 219A4900 = Chaos Computers
Research 12 : 319A4900 = Automation
Research 13 : 3C9A4900 = Hoverway
Research 14 : 459A4900 = Anti-Matter Containment
Research 15 : 5D9A4900 = Energy Deflectors
Research 16 : 6F9A4900 = Endurium Mining
Research 17 : 7F9A4900 = Starflare Bombs
Research 18 : 8F9A4900 = Neutrionic Fuel
Research 19 : 9F9A4900 = Artificial Intelligence
Research 20 : B79A4900 = Anti-Matter Rifles
Research 21 : CA9A4900 = Ion Weapons
Research 22 : D69A4900 = Triidium Processing
Research 23 : EA9A4900 = Orbital Surveillance
Research 24 : FF9A4900 = Metal Replication
Research 25 : 119B4900 = Cortex Scanner
Research 26 : 209B4900 = Disruptor Beams
Research 27 : 309B4900 = Food Replication
Research 28 : 419B4900 = Anti-Matter Deflectors
Research 29 : 589B4900 = Sub-Space Scanner
Research 30 : 6A9B4900 = Assault Armor
Research 31 : 789B4900 = Cloaking
Research 32 : 819B4900 = Anti-Matter Beams
Research 33 : 939B4900 = Advanced Cloaking
Research 34 : A59B4900 = Uncloaking
Research 35 : B09B4900 = Transporters
Research 35 : BD9B4900 = Time Dilation

Offset 5 -> 8 : <32 bits unsigned>
Not defined. Is always A4774900 in the executable.

Offset 9 -> 10 : <16 bits signed>
Tech Level

Offset 11-> 12 : <16 bits signed>
Research cost. Negative value doesn't give money

Offset 13 -> 14 : <16 bits signed>
First research unlocked after finished

Offset 15 -> 16 : <16 bits signed>
Second research unlocked after finished

Offset 17 -> 18 : <16 bits signed>
Third research unlocked after finished

====================
Last edited by klenski on Wed Jun 05, 2019 7:35 pm, edited 2 times in total.
klenski
Hatchling
Hatchling
Posts: 5
Joined: Wed May 08, 2019 10:15 am
Favourite Race: Uva Mosk

Re: The Decoding News

Post by klenski »

Offset is decimal (unless specified)
Value is hexadecimal
Deadlock.exe - english version 1.31

====================
Offset 515490 (hex = 7DDA2) : Building handling (requirements, what they do)
35 buildings listed (01 = None, 35 = Native Shrine)

Offset 1 -> 2 : <16 bits>
Not defined. Can be related to building name.

Offset 3 -> 6 : <32 bits unsigned> or <32 bits float>
Building reference (for memory pointer address I suppose, seeing IDA disassembly)

Offset 7-> 8 : <16 bits>
Sprite of the building

Offset 9 : <8 bits>
Building Number

Offset 10 : <8 bits>
Building Class
01 : Farm
02 : Mining
03 : Energy (and Art Complex, maybe a developer error)
04 : Factory
05 : Research
06 : Culture
07 : Shipyard
08 : Airport
09 : City Center
0A : Missile Silo
0B : Native Shrine
0C : Fuel Depot
0D : House
0E : Tower Defense

Offset 11 : <8 bits>
Max Labour Assigned value

Offset 12 : <8 bits>
Building Size X and Y
01 means 1 x 1
02 means 2 x 2

Offset 13 -> 14 : <16 bits>
Labour needed for construction time.
This parameter also change upgrade time of the building (if existing)
Bigger is slower. 00 = Instant construction

Offset 15 -> 16 : <16 bits>
Energy used per turn

Offset 17 -> 18 : <16 bits>
Not defined. Always 64 in the executable.

Offset 19 -> 20 : <16 bits>
First production capacity

Offset 21 -> 22 : <16 bits>
Second production capacity

Offset 23 -> 24 : <16 bits>
Third production capacity

Offset 28 : <8 bits>
First production type

01 : Unassigned (Automatic repair function)
02 : Construction
03 : Iron
04 : Endurium
05 : Research
06 : Electronics
07 : Culture
08 : Create Art
09 : Iron -> Steel
0A : Endurium -> Triidium
0B : Build Units
0C : Food
0D : Wood
0E : Trade
0F : Energy
10 : Anti-Matter
11 : Upgrade

Offset 29 : <8 bits>
Second production type

Offset 30 : <8 bits>
Third production type

Offset 31 : <8 bits>
Fourth production type

Offset 32 -> 39 : 8 offsets in <8 bits>
List of units that can be created by the building. From 01 to <I HAVE TO CHECK>
Militia is listed, but can't be created in queue

Offset 40 : <8 bits>
Technology needed to allow construction (see Research list order)

====================
Last edited by klenski on Wed Jun 05, 2019 7:35 pm, edited 3 times in total.
klenski
Hatchling
Hatchling
Posts: 5
Joined: Wed May 08, 2019 10:15 am
Favourite Race: Uva Mosk

Re: The Decoding News

Post by klenski »

Offset is decimal (unless specified)
Value is hexadecimal
Deadlock.exe - english version 1.31

====================

Offset 518464 (hex = 7E940) : Unit handling (requirement, characteristics)
25 units (01 = None)

Offset 1 -> 4 : <32 bits>
Unit reference address

Offset 5 -> 6 : <16 bits>
Not defined yet

Offset 9 -> 10 : <16 bits>
Sprite bank used.

76 : Soldier
7D : Plane
<TO FINISH>

Offset 11 : <8 bits>
Sprite used in the bank.

Offset 12 : <8 bits>
Not defined yet.

Offset 13 -> 14 : <16 bits>
Labor Cost

Offset 15 : <8 bits>
Upkeep Credit

Offset 16 : <8 bits>
Technology needed for creation

Offset 17 : <8 bits>
Move points

Offset 18 : <8 bits>
Not defined

Offset 19 : <8 bits>
Not defined

Offset 20 : <8 bits signed>
Attack

Offset 21 : <8 bits signed>
Defense

Offset 22 : <8 bits>
Speed
01 : Very Fast
02 : Fast
03 : Fast
04 : Slow
05 : Very Slow
06 : Ultra Slow

Offset 23 : <8 bits>
Firing Rate
01 = 100 rounds/second
02 = 50 rounds/second
03 = 10 rounds/second
04 = 2 rounds/second
05 = 1 round/second
06 = 0.75 round/second
07 = 0.67 round/second

Offset 24 : <8 bits signed>
Range (max is 7F, 3.6 squares)

====================
Last edited by klenski on Wed Jun 05, 2019 7:36 pm, edited 2 times in total.
User avatar
Tggtt
Ancient
Ancient
Posts: 259
Joined: Sun Oct 06, 2013 8:08 pm

Re: The Decoding News

Post by Tggtt »

Hello klenski! Sorry for late reply, I have been away;
Thank you for your correction and your contributions. You are invited to contribute to the deadlock at wikia as well.

(Not a criticism, but please...) Please state which dump you are using for the data you are showing!
Deadlock 1 has several versions ( I know you are dealing with English, but each translation also have different offsets because the EXEs have been linked separately).

We have some breakthroughs on building decoding that I haven't posted, I will add further details to you.

The simplest hint I can provide right now is that buildings are stored into a static array. They start with invalid numbers.
After you build a building, this number is defined and the game links each building sequentially using linked lists.
klenski
Hatchling
Hatchling
Posts: 5
Joined: Wed May 08, 2019 10:15 am
Favourite Race: Uva Mosk

Re: The Decoding News

Post by klenski »

Thanks tggtt.
Yes I am working on the english 1.31 version of Deadlock

But I have to get the french version at my brother's, I will give offsets for this version (original 1.20 version)
sdu754
Advisor
Advisor
Posts: 55
Joined: Mon Nov 28, 2011 4:50 pm
Favourite Race: Re'Lu

Re: The Decoding News

Post by sdu754 »

sdu754 wrote: Sat Feb 16, 2019 1:38 am 7 Electronic, Maug +50%
12 unit build modifier, ChCh't +10% Maug +25%
13 food, Tarth get, +50% & Uva Mosk +25%
26 is the Cyth mind blast
27 Re'Lu Mind Control
28 Human berserk
29 Tarth Juggernaut
31 Vehicle defense (30 is most likely vehicle attack)
22 & 23 Have to do with morale as the Cyth have a 0 & 0 and the Maug have a 30 & 15 and everyone else has a 20 & 10. The Maug recover Morale more slowly, and the Cyth recover instantaneously.
4, 5, 14 & 16 Are the +50% Uva Mosk multipliers. 14 is most likely wood & 16 is most likely energy
43 & 44 have to do with spying 43 is most likely "get caught" & 44 is probably a multiplier for Maug having the best spies
9, 15 & 46 all have a +50% for humans, could it be trade in the various buildings?
47 Re'Lu Subvert Morale
48 Human -1 transportation cost
49 Uva Mosk infantry spy order or Shaman Dance
50 Maug Sabotage or better at stealing technology
51 Cyth Poison Land
52 Uva Mosk infantry spy order or Shaman Dance
53 Maug Sabotage or better at stealing technology
54 ChCh't steal resources


These are what the various lines could be or have to be from what I know
I have confirmed that 43 is the chances of getting caught spying, the Tarth are more likely to get caught. 44 is an ability modifier of catching opposition spies, the Maug are more likely to catch spies.

9, 15 & 46 are plus plus 50% to Humans. One is trade production and one is artwork production the third one is scandal chance..
Post Reply