UE Map Editor

Ultimate Editor; support/discussion/questions

Moderator: thunderchero

Post Reply
User avatar
deva5tator
Cadet 2nd Year
Cadet 2nd Year
Posts: 7
Joined: Sun Jul 28, 2013 4:01 pm

UE Map Editor

Post by deva5tator »

A canon large map would be awesome! I've been trying to edit the map using the UE for a save game on the UDML mod but everytime it crashes after 1 or two turns.. can't figure it out.. So frustrating.. If anyone has any ideas how to get the UE Map editor to work i'd be so grateful! :)
User avatar
IMudd
Cadet 1st Year
Cadet 1st Year
Posts: 2
Joined: Tue Mar 31, 2020 9:04 pm

Re: Canon game star map

Post by IMudd »

I too have trouble with the UE Galaxy Map editor. I basically just switch minor races around with uninhabited planets, as I usually place as the Federation and like to expand through diplomacy. I give the other major races the uninhabited systems to conquer. I can usually get to around turn 30 and then the game crashes. Not sure what I could do in the UE to fix that.
User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 7851
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.

Re: Canon game star map

Post by thunderchero »

UE map editor has major flaws and has no current support to fix any issues.

It took mentat over 6 months to produce a single map and this was mainly hex edited by hand not with UE using the limited info Flocke has published.
User avatar
IMudd
Cadet 1st Year
Cadet 1st Year
Posts: 2
Joined: Tue Mar 31, 2020 9:04 pm

Re: Canon game star map

Post by IMudd »

Thank you thunderchero for the heads up. I have only used UE to change out ship models in the past. Is there any threads that explain basic hex editing or how to get started?
User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 7851
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.

Re: UE Map Editor

Post by thunderchero »

This is what I know about creating the saved game with Mentat

Any saved game must start at tech 1 and turn 0
ships can not be moved
you can not move majors or Echo Papa and Edo Guardian even by hex editing.
so expect 1000's of loading over and over to get a map with major and aliens in correct place.
also you need to edit game files to lower tech on minors and pray you don't get any minor ships
Note: I honestly think when Mentat moved the minors, this is what caused the start of his corruption.

here is the nuts and bolts guide to hex editing
viewtopic.php?f=70&t=2926#p26480

here is the limited info list of saved game files by Flocke.
http://flocke.bplaced.net/botfwiki/inde ... le-Listing
Note; Flocke even states "Please aware that some information might be incomplete or even incorrect."

to be honest you are wasting your time to attempt this. Even Mentat saves were corrupt and would fail after 100 or so turns and he studied this months before he attempted it.

sorry I will be of no further help, I just don't know the info

but good luck
User avatar
Axis
Commander
Commander
Posts: 489
Joined: Sun Aug 16, 2015 8:28 am
Location: Finland
Contact:

Re: UE Map Editor

Post by Axis »

I don´t know if anyone has ever mentioned this, but if you modify the game and start a new game with a previous seed number, then the map will be different than that which hasn´t been modified (hex edited or UE´d). I mean the trek.exe, stbof.res does not seem to affect.
Impress the Empress.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

I did some testing on exchanging systems with UE_0.7.2dev5c on a Klingon vanilla turn 195 save with all majors still alive, that I found on my disk and have attached.
By my surprise, swapping systems with ships, outposts and even the home systems initially all seemed to work fine.
With further testing, playing a few turns, I found a few conditions that fail:

When I moved the Sol system to the upper left corner, on turn 201 the game crashed without of a crash log. This is pretty reproducable, but doesn't happen with some other locations I moved it to, and it doesn't happen either when I moved it a later turn.
Having the ida-debugger attached, I found it crashes at asm 0x4451fb in sub_4451E0 (add_output_of_same_output_IDs)
moved_sol_exception.jpg
moved_sol_exception.jpg (18.66 KiB) Viewed 8092 times
moved_sol_asm.jpg
moved_sol_asm.jpg (33.03 KiB) Viewed 8092 times
where it reads the system info at a specified index.

That routine is called by sub_4690C0 (Train_ships) and debugging it some little, the call to sub_4B6D80 (starID_from_sector_lst) returns -1, which ofc is an invalid star system index.
And the problem is that sub_46F3D0 (ORDER_MILITARY_2?) still returns the old sector location of edx = 0x18 and ecx = 0x9.
Checking GTForceList, GWTForce and GShipList, it is "USS Rio Branco A" with shipID 0x016E which moved to the old Sol location and now attempts to train, and likely fails to read the system training abilities the next turn.

Another issue I found was with romulan and cardassian home systems moved to some other locations, a few turns later I got:

Code: Select all

-------------------------------------
ST:BOF Sat Apr 24 08:51:56 2021

Version Under Test: 72
File: ..\..\source\game\solarapi.c, Line: 2792, System is not dest or source of trade route
Initialize State: 31
Player Empire: 3	Starting Seed: 1329645910
Galaxy shape: 0	Galaxy Size: 2
Turn State: 20
Turn Number: 211
So it seems the AI still knows on old sector locations and attempts to order ships and assign trade routes and the like.
I'll try to figure this out.
Attachments
Game7.sav
(224.02 KiB) Downloaded 109 times
User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 1884
Joined: Sun Apr 27, 2008 2:00 am

Re: UE Map Editor

Post by Spocks-cuddly-tribble »

The training issue is consistent with Mentat's problems when moving turn 1 map star systems with ships in sector, but most likely affects other orders as well.

The problem wrt sub_46F3D0 is the OrdInfo (structure unknown) i.e. you have to check and update coordinates (resp cancel if out of range now) when moving starsystems (same for tradeInfo, AI orders, GTForceList, GWTForce, GShipList and so on).


EDIT: Here is how to spy on the AI tasks: (ship data 6, 7 and E) viewtopic.php?p=34204#p34204

Let's hope the AI will update it's map scan base data when loading edited saved games. But some invalid ship tasks will stay even if conditions of the destination system have changed (source of many vanilla AI glitches).


EDIT2: If you are lucky the trade route source and destination coordinates are also taken from ordInfo. This would mean you need to edit just this file, since other AI glitches won't crash the game but just cripple AI tasks a bit more than ususal.
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

Thx SCT, the link you provided is exactly what I was looking for. :up:

Extracting the whole save with UE and searching the folder for sector references with Hexprobe ( http://www.turing321.com/hex_edit/hexprobe/index.htm - the first free one I found with directory hex search ), I found the following references:
save7_sol_ref.jpg
save7_sol_ref.jpg (55.71 KiB) Viewed 8064 times
Having manually patched all those locations (except sector.lst ofc), the save game now works fine with moved Sol for already more than 100 turns without a single crash. I stopped testing stability any further. The Fed AI pumps out ships and moves around without an issue.

--

I then had a closer look at the AITask files:
0x00-0x02 looks to be the Ai-TaskId, a short value, followed by
0x03-0x04 an additional sequel Ai-TaskId, which usually is set to "FF FF" (-1)
0x04-0x07 with above info from SCT I identified as the TaskType id:
Explore (0)
Raid (1)
Colonize (2)
Tform (3)
Develop System (4)
Build Ship (5)
Buildbase (6)
Invade (7)
Accept Proposal (8) default modifier -1
Offer Proposal (9)
Attack (A)
Build Wonder (B)
Patrol (C)
Train (D)
Repair (E)
Harass (F)
0x08-0x0B I call the TaskCategory, and indicates whether this is a ship task (1) or a system task (2) or 3 for Gifts/Offers = Diplomacy I guess
0x0C-0x0F is the responsible AgentId, written to the start of each AIAgent file (which in turn includes the raceId)

Checking on the different AI tasks, I further found they all list the sector source and target location at:
0x70-0x73: source sector row
0x74-0x77: source sector column
0x78-0x7B: target sector row
0x7C-0x7F: target sector column

For Develop System and Build Ship tasks, the sector source and target is set to "FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF" for -1 -1 -1 -1 = unspecified. However it is always the exact same offset.

The file length seems to be determined by the TaskType.

Other values I could not determine, but I did not test by editing the values like I did with my other save game analysis.

--

I verified above with my previously posted save file. AITask61 seems to be responsible for above ship training issue and reads "0D 00 00 00" for the TaskType. Both sector references are set to old Sol location and overwriting it fixes the crash. Note that the ship actually is located in a different location, so this task is independent from ship or fleet but rather a general purpose task for ship training.

AITask118, which points from 09/18 to the far away, yet uncolonized 11/0B system, not in reach by the Federation, has TaskType 0x00 = Explore, a perfect match.

AITask140 has 0x0C patrol order set, pointing from old Sol to the very same location. I'm not surprised.

AITask157 has 0x0E repair order set, again with both coordinates set to old Sol location.

AITask169 points from 09/17 to 09/18, from a system that got occupied by the Ferengi next to old Sol location. It has Task 0x07 Invade set. By this, one might assume the Ferengi wanted to invade Sol next, but by now they are both in peace. Instead, looking up the AIAgent23 file with the matching AgentId 0x03, it is the Romulans, who indeed are the only ones currently at war with the Federation. They probably wanted to use the nearby Ferengi system to arrange troops.

--

In summary from investigation and testing I feel rather safe that the AITask coordinates can be overridden to fix related issues. I noticed the ai updates it's tasks from time to time anyhow and ships seem to regard their range. See the exploration task partially is set out of range anyhow.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

some further analysis:

AISysUnt matched by systInfo:

Code: Select all

01 00 FF FF EE 00 00 00 00 00 00 00 Pyris
03 00 08 06 08 06 00 00 01 00 00 00 Vadris
06 00 35 00 35 00 00 00 00 00 00 00 Romulus
07 00 18 04 18 04 00 00 01 00 00 00 Lamenda
0B 00 F4 0B F4 0B 00 00 01 00 00 00 Rochani
0C 00 FF FF D0 00 00 00 01 00 00 00 Gemulon
10 00 0F 04 0F 04 00 00 01 00 00 00 Qualor
19 00 00 03 00 03 00 00 01 00 00 00 Carema
1A 00 56 06 56 06 00 00 01 00 00 00 Emila
1D 00 B2 04 B2 04 00 00 01 00 00 00 Thalos
1E 00 09 01 09 01 00 00 01 00 00 00 Evadne
22 00 CE 0A CE 0A 00 00 00 00 00 00 Shelia
23 00 FF FF B9 00 00 00 01 00 00 00 Titus
25 00 -- missing, just colonized -- Moab
27 00 FF FF 39 01 00 00 01 00 00 00 Hoek
2A 00 EC 01 EC 01 00 00 01 00 00 00 Kostolain
2C 00 95 0C 24 00 00 00 00 00 00 00 Sol
30 00 FF FF 6A 01 00 00 01 00 00 00 Pythro
32 00 98 00 98 00 00 00 00 00 00 00 Ogus
33 00 1F 03 1F 03 00 00 01 00 00 00 Talar
35 00 C4 00 C4 00 00 00 00 00 00 00 Harrakis
39 00 FF FF 2C 00 00 00 00 00 00 00 Ferenginar
3B 00 A9 00 A9 00 49 00 01 00 00 00 Largo
3C 00 FA 00 FA 00 49 00 00 00 00 00 Melnos
3F 00 6A 09 6A 09 49 00 00 00 00 00 Canopus
40 00 47 00 47 00 49 00 00 00 00 00 Boreth
41 00 1B 00 1B 00 00 00 00 00 00 00 Cardassia
42 00 8A 00 8A 00 49 00 00 00 00 00 Ruah
43 00 6C 03 6C 03 49 00 01 00 00 00 Ariannus
45 00 FF FF 6D 07 49 00 01 00 00 00 No'Mat
48 00 7E 02 7E 02 00 00 00 00 00 00 Bajor
49 00 FB 00 FB 00 49 00 00 00 00 00 Erabus
4D 00 04 02 04 02 49 00 01 00 00 00 Tycho
4E 00 E1 00 E1 00 49 00 00 00 00 00 Morikin
4F 00 4A 08 4A 08 00 00 01 00 00 00 Galen
50 00 FF FF 4E 00 00 00 00 00 00 00 Atalia
51 00 72 00 72 00 49 00 00 00 00 00 Mintaka
===== ===== ===== ===== ===========
SysId AITsk AITsk TskSy enabled?
      Next? Curr? ??
AITasks, all referenced by AgtTk, AISysUnt:
Develop System (4), Build Ship (5)

AgtTk_ is a pure list of AITaskIds, 2 bytes each, for the number of AgtTk_.cnt

Notice that new colonized systems have no AITask yet.


AIShpUnt matched by GShipList:

Code: Select all

65 01 02 00 FF FF F0 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00
66 01 02 00 FF FF F0 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
67 01 02 00 FF FF F0 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
6A 01 05 00 FF FF 65 05 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
6B 01 02 00 5F 0C C0 0C FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
6E 01 00 00 FF FF D1 0B FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
70 01 02 00 2B 00 2B 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
71 01 09 00 2B 00 2B 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
73 01 03 00 49 09 D1 0B FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 
74 01 09 00 2B 00 2B 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00
===== ===== ===== ===== ===============================================
ShpId ShpT  AITsk AITsk unknown, looks unused
            Next? Curr?

       e.g. 47 04 FF FF misses the AITask
ShpT (ship type)
00 = Scout
01 = Destroyer
02 = Cruiser
03 = Attack Cruiser
04 = Command Cruiser
05 = Colony Ship
09 = Troop Transport

AITasks, all referenced by AgtTk, AIShpUnt:
Explore (0), Raid (1), Colonize (2), Tform (3), Buildbase (6), Invade (7), Patrol (C), Repair (E), Harass (F), likely also including Train (D) which was not in my list


other AITasks:
Offer Proposal (9), Build Wonder (B), referenced by AgtTk only
Accept Proposal (8) and Attack (A) I missed in my list, but are likely the same

I additionally checked on the Chodak dreadnought (Juggernaut) alien flying around.
It's position is both listed by the sector.lst and a single AITask, nothing else.


--

Furthermore I had a look at the trdeInfo files again, each entry in there has a length of 20 bytes.
updated info for game7.sav:

Code: Select all

trdeInfo0:
00 00 00 00 00 00 00 00 41 00 44 00 31 00 00 00 13 00 00 00
00 00 01 00 00 00 00 00 41 00 48 00 41 00 00 00 13 00 00 00
00 00 02 00 00 00 00 00 40 00 35 00 2C 00 00 00 0C 00 00 00
00 00 03 00 00 00 00 00 3B 00 39 00 2C 00 00 00 0D 00 00 00
00 00 04 00 00 00 00 00 4D 00 47 00 2F 00 00 00 0F 00 00 00
trdeInfo1:
01 00 00 00 00 00 00 00 2C 00 09 00 32 00 00 00 10 00 00 00
01 00 01 00 00 00 00 00 2C 00 44 00 2E 00 00 00 10 00 00 00
01 00 02 00 00 00 00 00 33 00 17 00 3C 00 00 00 0E 00 00 00
01 00 04 00 00 00 00 00 1E 00 11 00 33 00 00 00 09 00 00 00
01 00 05 00 00 00 00 00 10 00 FF FF 00 00 00 00 00 00 00 00
01 00 06 00 00 00 00 00 19 00 FF FF 00 00 00 00 00 00 00 00
trdeInfo2:
02 00 0A 00 00 00 00 00 50 00 3E 00 22 00 00 00 09 00 00 00
02 00 0B 00 00 00 00 00 35 00 44 00 2E 00 00 00 10 00 00 00
02 00 0C 00 00 00 00 00 32 00 FF FF 00 00 00 00 00 00 00 00
02 00 0D 00 00 00 00 00 35 00 FF FF 00 00 00 00 00 00 00 00
02 00 10 00 00 00 00 00 2A 00 FF FF 00 00 00 00 00 00 00 00
02 00 11 00 00 00 00 00 4F 00 FF FF 00 00 00 00 00 00 00 00
02 00 12 00 00 00 00 00 4F 00 FF FF 00 00 00 00 00 00 00 00
02 00 00 00 00 00 00 00 39 00 FF FF 00 00 00 00 00 00 00 00
02 00 01 00 00 00 00 00 39 00 FF FF 00 00 00 00 00 00 00 00
02 00 02 00 00 00 00 00 39 00 FF FF 00 00 00 00 00 00 00 00
02 00 03 00 00 00 00 00 39 00 FF FF 00 00 00 00 00 00 00 00
02 00 04 00 00 00 00 00 39 00 41 00 37 00 00 00 0F 00 00 00
02 00 05 00 00 00 00 00 39 00 FF FF 00 00 00 00 00 00 00 00
02 00 06 00 00 00 00 00 39 00 40 00 27 00 00 00 0F 00 00 00
02 00 07 00 00 00 00 00 48 00 FF FF 00 00 00 00 00 00 00 00
02 00 08 00 00 00 00 00 48 00 FF FF 00 00 00 00 00 00 00 00
02 00 09 00 00 00 00 00 48 00 FF FF 00 00 00 00 00 00 00 00
trdeInfo3:
03 00 0A 00 00 00 00 00 2E 00 FF FF 00 00 00 00 00 00 00 00 Acamar      -> unassigned
03 00 0B 00 00 00 00 00 29 00 1D 00 17 00 00 00 0E 00 00 00 Antede      -> Thalos (fed)
03 00 0C 00 00 00 00 00 2D 00 10 00 26 00 00 00 0B 00 00 00 Quazulu     -> Qualor (fed)
03 00 0D 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 Browder     -> unassigned
03 00 0E 00 00 00 00 00 17 00 FF FF 00 00 00 00 00 00 00 00 Marlonia    -> unassigned
03 00 0F 00 00 00 00 00 11 00 FF FF 00 00 00 00 00 00 00 00 Ktaria      -> unassigned
03 00 10 00 00 00 00 00 11 00 FF FF 00 00 00 00 00 00 00 00 Ktaria      -> unassigned
03 00 11 00 00 00 00 00 0A 00 FF FF 00 00 00 00 00 00 00 00 Gamma Tauri -> unassigned
03 00 12 00 00 00 00 00 17 00 FF FF 00 00 00 00 00 00 00 00 Marlonia    -> unassigned
03 00 00 00 00 00 00 00 0E 00 2C 00 33 00 00 00 12 00 00 00 Qo'nos      -> Sol    (fed)
03 00 01 00 00 00 00 00 0E 00 33 00 2E 00 00 00 12 00 00 00 Qo'nos      -> Talar  (fed)
03 00 02 00 00 00 00 00 52 00 19 00 21 00 00 00 11 00 00 00 Tyrellia    -> Carema (fed)
03 00 04 00 00 00 00 00 0F 00 23 00 17 00 00 00 0E 00 00 00 Vulcan      -> Titus  (fed)
03 00 05 00 00 00 00 00 53 00 FF FF 00 00 00 00 00 00 00 00 Eden        -> unassigned
03 00 06 00 00 00 00 00 24 00 1B 00 26 00 00 00 0E 00 00 00 Andor       -> Pakled
03 00 07 00 00 00 00 00 12 00 30 00 09 00 00 00 00 00 00 00 Trill       -> Pythro (fed)
03 00 08 00 00 00 00 00 1F 00 1A 00 12 00 00 00 0C 00 00 00 Antica      -> Emila  (fed)
03 00 09 00 00 00 00 00 2E 00 1E 00 25 00 00 00 12 00 00 00 Acamar      -> Evadne (fed)
trdeInfo4:
04 00 00 00 00 00 00 00 06 00 48 00 3E 00 00 00 10 00 00 00
04 00 01 00 00 00 00 00 06 00 18 00 2C 00 00 00 10 00 00 00
----- ----- ----------- ----- ----- ----------- -----------
race  nbr   empty       src   trgt  crdInc      crdOut
-----------             sysId sysId
trdeId
0x00-0x01 race:       raceId
0x02-0x03 nbr:        trade route number (race + nbr = trade route id)
0x04-0x07 empty:      unknown empty space
0x08-0x09 src sysId:  source system StarID
0x0A-0x0B trgt sysId: target system StarID
0x0C-0x0F crdInc:     credits income
0x10-0x13 crdOut:     credit output of incoming trade routes (0.05 * pop source system)
By my testing, changing the system location had no effect on established trade routes. They all adapted automatically. I found no sector coordinates for it at all.


--

With above post from SCT I once more checked on ordInfo. UE here already reads in all the orders and updates the target sector row and column for the moved fleets. It however misses to update other fleets so that it is better be patched for moved systems.

Dunno what else to check, I'll next try patch UE and overwrite the AITask coordinates. I'm confident that the normal sector move should work fine then.

---
edit: added trdeInfo game7.sav sample data
Last edited by Flocke on Sun Jun 06, 2021 2:37 pm, edited 2 times in total.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

Your message contains 85686 characters.
The maximum number of allowed characters is 60000.
Ah well, I knew there was a limit :lol:
Happy reading!


I continued analysing and testing with same above save7.sav save game playing the Klingons, and kept punching the UE code.
While moving sectors, systems, outposts and task forces looks to be stable now, and adding new task forces does work also, the removal of task forces with assigned tasks does not. But I'm at it and I think with below analysis I can fix that one as well now.

Further I stumbled upon one major issue with the UE LZSS sav file compression, which led to corrupt any save game ever touched.


====

First, regarding the LZSS compression, while the algorithm itself works fine, it uses some little trick to further reduce the space some little.
It pre-fills the lookup dictionary with some configurable character. And while for compression in LzssOutputStream.java, it was set to 32, the space character, for decompression in LzssInputStream.java it was set to 0. These values however MUST match, and same wise they must match with whatever values trek.exe uses to pre-fill the dictionary.

It's amazing that most of the time the game loaded anyhow. I only noticed by re-opening an already modified sav file with UE, where I got prompted with an error stating that there was a tech entry or something missing. It turned out that for an expected index 32 the value was zeroed. Left me puzzled for quite some while. The compression algorithm here however expected the wrong value in the dictionary.

By testing, I found that I had to use the space character 32 (0x20) to pre-fill the dictionary, else the save wouldn't load. This likely goes back to a mis-assumption I found in my original sav file notes, where I assumed the dictionary was pre-filled with zeros. The algorithm there however featured that the dictionary was filled and written character by character, so for a long 00 00 .. 00 00 it would just refer the first value and assume the rest would be filled just in place while it went to copy the next character.

I found no reference to assume it is pre-filled to some other character for any of the files, and testing so far tells it is the space character for all of the sav contained files.
For proof however one would have to check the trek.exe implementation for each of the files.

I leave it at that as long no further errors show up.

update: I now found evidence, that at least for the techInfo file the LZSS dictionary indeed must be pre-filled with 00s, see viewtopic.php?p=54203#p54203 below


====

But now to the sav analysis updates:

--- GTForceList/GWTForce ---
hex view width: 108

I found a fault in here for 0x30-0x33:
this is not related to TT based system attacks at all, instead it is the computed
target sector index (row*columns + column-1, same like the outpost ids and 0xFFFFFFFF if none) !!

Guess that is not so unimportant when you change some task force move destination.

Further for the task force listings, the ability bitmask hasn't been documented yet. The only sparse documentation I found is in viewtopic.php?f=275&t=500&p=32183&hilit ... ask#p32183
From my testing I found this unlocks the task force mission menu buttons. And you perfectly can allow a battle cruiser to colonize a system. The next turn however all abilities are reset automatically.
For myself btw I prefer the term 'flags', cause a 'mask' in programming is used for search algorithms and match making. E.g. you use a mask to filter for whether a task force has some required flags.

ability flags / ability mask
0x0001 (01 00) = can colonize
0x0002 (02 00) = can raid system
0x0004 (04 00) = can invade system
0x0008 (08 00) = ?? never seen used
0x0010 (10 00) = can intercept
0x0020 (20 00) = ?? never seen used
0x0040 (40 00) = can terraform
0x0080 (80 00) = can cloak
0x0100 (00 01) = can build outpost
0x0200 (00 02) = can build starbase
0x0400 (00 04) = can be scrapped
0x0800 (00 08) = can bombard system
0x1000 (00 10) = ?? never seen used
0x2000 (00 20) = ?? never seen used
0x4000 (00 40) = ?? never seen used
0x8000 (00 80) = ?? never seen used

(xx xx) = little endian

e.g.
00 04 Chodak
02 0C ferg attack cruiser, fed command cruiser
04 07 fed troop transport
12 0C tamarian ship, card cruiser, ferg weapon cruiser, fed scout, pakled transport
41 04 klng colony ship, rom colony ship
45 07 klng colony ship + troop transport
82 04 rom attack cruiser
92 04 cloaked klingon battle cruiser
92 0C uncloaked klingon battle cruiser


--- GShipHead = GTForceHd = GWTForceHd = GTFStasisHd ---

The header files still aren't fully known either. But from what I found, the unknown values are:

0x00-0x0F = asm function pointer offsets, see sub_46C430 / set_ship_lists?_startgame
_ 0x00-0x03 = GShipHead: offset sub_449C00, others: offset loc_448D00
_ 0x04-0x07 = offset sub_492F90 / call_get_code_address?
_ 0x08-0x0B = offset sub_492E90 / call__EnterCriticalSection_
_ 0x0C-0x0F = offset sub_492E60 / system_memory__clear_file?
0x1C-0x1F = some file flags, always: GTFStasisHd/GWTForceHd = 0x1, GShipHead/GTForceHd = 0x81
0x20-0x27 = some data pointer it seems, possibly the content data


--- TskSh files ---

Similar to the AgtSh files, these list the ship ids to be controlled by some agent.
It is a pure list of short values for the ship ids, and the .cnt files tell how many.
Like already documented, the race agent id can be matched by the AIAgent files.

By my guess these files list the current active ship tasks. It is not relevant when adding new ships, but for sure is when removing some.


--- treaty file ---
hex view width: 116

lists active treaties

0x0-0x3: num treaties
0x4-0x7: next id
[num * treaties]
0x00-0x27: contact race name if player initiated
0x28-0x2B: delay? (1 if waiting on player response, two majors involved, or for gifts to take effect)
0x2C-0x2F: treatyId
0x30-0x33: treatyType (1:peace 2:alliance 3:war pact 4:accepted demand 5:friendship 6:affiliation 7:membership 8:gift)
0x34-0x35: initiator raceId
0x36-0x37: recipient raceId
0x38-0x38: turns (-1 if unlimited)
0x39-0x3B: empty data alignment
0x3C-0x3F: turnStart (first active turn)
0x40-0x43: turnEnd (last active turn)
0x44-0x47: hasGift (0 or 1)
0x48-0x4B: hasDemand (0 or 1)
0x4C-0x4F: hasRepeatedGift (0 or 1)
0x50-0x53: hasRepeatedDemand (0 or 1)
0x54-0x57: credits gift (one time)
0x58-0x5B: credits demand (one time)
0x5C-0x60: cede disputed territories
0x61-0x63: unknown
0x64-0x67: peaceType (for major empires -> 0:non-aggression 1:friendship 2:affiliation)
0x68-0x6B: declareWar? (0 or 1)
0x6C-0x6F: declareWarAsWell? (0 or 1)
0x70-0x71: targetRaceId (for war pact, else -1)
0x72-0x73: empty data alignment


--- intelInfo file (update) ---

0x0058 to 0x02D7 (5 empires * 0x80) = intel expense:

Code: Select all

card:
00 00 00 00 2A 00 00 00 B3 00 00 00 87 00 00 00  8D 00 00 00 00 00 39 05 07 1C F2 28 09 08 00 00 economy
00 00 00 00 2A 00 00 00 28 00 00 00 87 00 00 00  BC 00 00 00 00 00 3A 03 D6 03 23 77 67 08 00 00 research
00 00 00 00 2A 00 00 00 95 00 00 00 87 00 00 00  8D 00 00 00 00 00 1C 00 28 00 48 00 22 00 00 00 military
00 00 00 00 A6 00 00 00 28 00 00 00 87 00 00 00  8D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 morale
fed:
2A 00 00 00 00 00 00 00 87 00 00 00 C1 00 00 00  67 00 00 00 12 04 00 00 16 14 8C 30 EC 04 00 00 economy
2A 00 00 00 00 00 00 00 87 00 00 00 C1 00 00 00  67 00 00 00 01 03 00 00 91 1F FF 93 5D 04 00 00 research
2A 00 00 00 00 00 00 00 87 00 00 00 C1 00 00 00  67 00 00 00 1B 00 00 00 26 00 48 00 1E 00 00 00 military
2A 00 00 00 00 00 00 00 87 00 00 00 C1 00 00 00  67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 morale
ferg:
28 00 00 00 87 00 00 00 00 00 00 00 72 00 00 00  82 00 00 00 8B 03 10 0D 00 00 25 27 E5 06 00 00 economy
28 00 00 00 87 00 00 00 00 00 00 00 72 00 00 00  82 00 00 00 01 03 FF 0A 00 00 2D 65 03 05 00 00 research
28 00 00 00 87 00 00 00 00 00 00 00 72 00 00 00  82 00 00 00 1B 00 25 00 00 00 48 00 20 00 00 00 military
28 00 00 00 87 00 00 00 00 00 00 00 72 00 00 00  82 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 morale
klng:
00 00 00 00 C1 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 2E 14 00 00 00 00 00 00 00 00 economy
00 00 00 00 C1 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 21 21 00 00 00 00 00 00 00 00 research
00 00 00 00 C1 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 2B 00 00 00 00 00 00 00 00 00 military
00 00 00 00 C1 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 morale
rom:
8D 00 00 00 67 00 00 00 82 00 00 00 19 00 00 00  00 00 00 00 0A 0B 83 0A 71 13 CB 0A 00 00 00 00 economy
8D 00 00 00 67 00 00 00 82 00 00 00 19 00 00 00  00 00 00 00 95 0C A5 01 89 1D AF 0F 00 00 00 00 research
8D 00 00 00 67 00 00 00 82 00 00 00 19 00 00 00  00 00 00 00 24 00 22 00 25 00 40 00 00 00 00 00 military
8D 00 00 00 67 00 00 00 82 00 00 00 19 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 morale
----------- ----------- ----------- -----------  ----------- ----- ----- ----- ----- ----- -----
trn change  trn change  trn change  trn change   trn change  spent spent spent spent spent empty
card        fed         ferg        klng         rom         card  fed   ferg  klng  rom
0x00                                             0x10                                            0x20 * 5 * 4 = 0x280

--- result.lst / ordInfo ---

Now it gets interesting. While I analysed the result.lst file, I found it partially refers the exact same ordInfo data structures. So you find it used in both.
The one major difference is that in result.lst the compression is split to separate chunks and so is the ordInfo header and content data.

Like already has been found, in result.lst each data chunk is introduced by some header chunk, which is 12 bytes long, containing:
0x00-0x03 the data offset, 0x0C for the fist chunk
0x04-0x07 the uncompressed data size
0x08-0x0B the compressed data size
The data chunk then is LZSS compressed like any other sav file.
And the count of the chunks is listed by the sav file table at the end of the sav file.

Note that saving the uncompressed file with UE, instead of the chunk headers, the plain uncompressed size is prepended to each of the chunks. It however is not part of the actual data!

For result.lst, which from all I know is the only chunk based file, the first chunk lists the entry count and nothing else.
0x00-0x03: entry count

Each of the following entries then consist of a header chunk and a content chunk. Well, the header itself contains relevant info though.
Some of these entries however list another sub-entry or details chunk which by itself has a header chunk as well.

To give a better view on this, the result.lst is structured like this:
[first chunk header] if compressed: 12 bytes for the data offset, uncompressed and compressed size, or if uncompressed by UE: 4 bytes for the content size
[entry count] the first data chunk, 5 bytes if compressed, 4 bytes if uncompressed - the algorithm here doesn't do well
[next chunk header]
[first entry header]
[next chunk header]
[first entry content]
   [next chunk header]
   [an optional sub-entry header]
   [next chunk header]
   [followed by the sub-entry content]
[next chunk header]
[next entry header]
[next chunk header]
[next entry content]
.. and so on for all the entries
I identified the following six cases where only the 0x28 byte header is counted:
  1. 0x28 header -> 0x10 content for economic results
  2. 0x28 header -> 0x10 content for economic results -> 0x20 ordInfo-header -> 0x34 ordInfo economic order
  3. 0x28 header -> 0x10 content for economic results -> 0x20 ordInfo-header -> 0x48C ordInfo diplomatic order
  4. 0x28 header -> 0x9C content for military results
  5. 0x28 header -> 0x9C content for military results -> 0x20 ordInfo-header -> 0x34 ordInfo military order
  6. 0x28 header -> 0x74 content for intel results

Then I further had a look at each of these entries. With almost no testing and asm analysis but comparing some botf and known sav file values, I figured the following with all save7 entries listed:

header 0x28
===========

This is the central entry header for each of the entries.

1: economic result header (little endian)

Code: Select all

<38> 28 00 00 00 | 84 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF 00  FF FF FF FF 00 00 25 00 00 00 00 80 00 00 00 00  30 E6 ED 03 10 00 00 00 Carema    (fed y:5 x:14):
<39> 28 00 00 00 | 85 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF 01  FF FF FF FF 00 80 06 00 00 00 00 00 00 00 00 00  18 E3 ED 03 10 00 00 00 Carema    (fed y:5 x:14):  ?insufficient energy
<49> 28 00 00 00 | CB 55 55 55 02 00 00 00 00 01 00 00 04 FF FF 00  FF FF FF FF 00 00 1F 00 00 00 00 00 00 00 00 00  A0 EB ED 03 10 00 00 00 Moab      (ferg y:8 x:10): enthused on new trading (Begeisterung, neuer Handel)
<56> 28 00 00 00 | 49 00 00 80 03 00 FF FF 00 01 00 00 08 00 00 00  FF FF FF FF 00 00 40 00 00 00 00 40 00 00 00 00  08 79 8B 02 10 00 00 00 Marlonia  (klng y:5 x:B):  planet 4 became barren (unfruchtbar)
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----------- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   sysId       flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  0x10                                             0x20                    0x28
                                                    race flags
2: economic result header with economic ordInfo sub-entry (little endian)

Code: Select all

<11> 28 00 00 00 | F4 00 00 00 00 00 00 00 00 01 00 00 01 FF FF 40  43 00 00 00 00 80 00 00 00 00 00 00 50 FD 8B 02  B8 40 ED 03 10 00 00 00 Ariannus  (card): upgraded type 6 constr. yard
<12> 28 00 00 00 | F5 00 00 00 00 00 00 00 00 01 00 00 01 FF FF 42  4D 00 00 00 00 80 00 00 00 00 00 00 18 5A 88 02  F8 42 ED 03 10 00 00 00 Tycho     (card): upgraded type 2 constr. yard
<13> 28 00 00 00 | F6 00 00 00 00 00 00 00 00 01 00 00 01 FF FF EF  3F 00 00 00 00 80 00 00 00 00 00 00 D8 DC C5 02  30 EF ED 03 10 00 00 00 Canopus   (card): built typ 1 shadow team
<40> 28 00 00 00 | 86 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF A1  FF FF FF FF 00 80 00 00 00 00 00 00 88 12 FA 04  80 42 ED 03 10 00 00 00           (fed):  sent 7335 credits to the ferengi
<41> 28 00 00 00 | 87 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF 00  19 00 00 00 00 80 00 00 00 00 00 00 90 93 8B 02  40 EE ED 03 10 00 00 00 Carema    (fed):  built type 1 plasma reactor
<42> 28 00 00 00 | 88 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF EC  0B 00 00 00 00 80 00 00 00 00 00 00 F8 59 ED 03  88 EB ED 03 10 00 00 00 Rochani   (fed):  built wind turbines
<43> 28 00 00 00 | 89 AB AA 2A 01 00 00 00 00 01 00 00 02 FF FF 00  10 00 00 00 00 80 00 00 00 00 00 00 08 6F 88 02  F0 44 ED 03 10 00 00 00 Qualor    (fed):  built type 1 autom. farm
<52> 28 00 00 00 | CE 55 55 55 02 00 00 00 00 01 00 00 04 FF FF A5  FF FF FF FF 00 80 00 00 00 00 00 00 58 12 FA 04  68 2D 8B 02 10 00 00 00           (ferg): sent 665 credits to the takarians
<53> 28 00 00 00 | CF 55 55 55 02 00 00 00 00 01 00 00 04 FF FF 00  35 00 00 00 00 80 00 00 00 00 00 00 58 5A ED 03  B0 FC ED 03 10 00 00 00 Harrakis  (ferg): built shied generator
<54> 28 00 00 00 | D0 55 55 55 02 00 00 00 00 01 00 00 04 FF FF 00  2A 00 00 00 00 80 00 00 00 00 00 00 78 49 ED 03  58 EB ED 03 10 00 00 00 Kostolain (ferg): upgraded type 2 market
<60> 28 00 00 00 | 4D 00 00 80 03 00 00 00 00 01 00 00 08 00 00 00  53 00 00 00 00 80 00 00 00 00 00 00 28 1B FA 04  28 3D ED 03 10 00 00 00 Eden      (klng): built Scout II: IKC Dughro' B
<68> 28 00 00 00 | 43 AB AA AA 04 00 00 00 00 01 00 00 10 FF FF EB  51 00 00 00 00 80 00 00 00 00 00 00 48 49 ED 03  70 EB ED 03 10 00 00 00 Mintaka   (rom):  upgraded type 3 energy exchange
<69> 28 00 00 00 | 44 AB AA AA 04 00 00 00 00 01 00 00 10 FF FF 00  06 00 00 00 00 80 00 00 00 00 00 00 A8 04 FA 04  80 B2 8B 02 10 00 00 00 Romulus   (rom):  built orbital battery
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----------- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   sysId       flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  0x10                                             0x20                    0x28
                                                    race flags
3: economic result header with diplomatic ordInfo sub-entry (little endian)

Code: Select all

<03> 28 00 00 00 | EC 00 00 00 00 00 FF FF 00 05 00 00 11 00 00 00  FF FF FF FF 00 80 14 00 00 00 00 00 A8 12 ED 03  70 E5 C5 02 10 00 00 00 Diplomacy (rom):  please keep sabotaging the klingons
<47> 28 00 00 00 | C9 55 55 55 02 00 FF FF 00 05 00 00 06 00 00 00  FF FF FF FF 00 80 15 00 00 00 00 00 78 10 FA 04  48 8D C5 02 10 00 00 00 Diplomacy (fed):  rejected alliance or war pact
<48> 28 00 00 00 | CA 55 55 55 02 00 00 00 00 05 00 00 06 FF FF FB  FF FF FF FF 00 00 19 00 00 00 00 00 D8 0A FA 04  C8 94 ED 03 10 00 00 00 Diplomacy (fed):  sent ferengi 7335 credits
<61> 28 00 00 00 | 4E 00 00 80 03 00 00 00 00 05 00 00 0A FF FF 00  FF FF FF FF 00 00 17 00 00 00 00 00 08 0E FA 04  D8 E6 ED 03 10 00 00 00 Diplomacy (fed):  demand 5345 credits, immediate
<72> 28 00 00 00 | 9A 55 55 D5 19 00 FF FF 00 05 00 00 04 00 00 00  FF FF FF FF 00 00 15 00 00 00 00 00 28 09 FA 04  40 3D ED 03 10 00 00 00 Diplomacy (ferg): Selay ??friendship
<73> 28 00 00 00 | 9B 55 55 D5 1B 00 00 00 00 05 00 00 04 FF FF FB  FF FF FF FF 00 00 19 00 00 00 00 00 F8 27 C5 02  B0 94 ED 03 10 00 00 00 Diplomacy (ferg): sent takarians 665 credits
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----------- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   ?unused     flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  0x10                                             0x20                    0x28
                                                    race flags
4: military result header (little endian)

Code: Select all

<01> 28 00 00 00 | EA 00 00 00 00 00 FF FF 00 03 00 00 01 00 00 00  00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00  90 EC 8B 02 9C 00 00 00 card
<02> 28 00 00 00 | EB 00 00 00 00 00 FF FF 00 03 00 00 01 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  C8 12 C5 02 9C 00 00 00 card
<04> 28 00 00 00 | ED 00 00 00 00 00 FF FF 00 03 00 00 03 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  78 1C 8B 02 9C 00 00 00 card/fed
<05> 28 00 00 00 | EE 00 00 00 00 00 FF FF 00 03 00 00 05 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  A0 31 8B 02 9C 00 00 00 card/ferg
<06> 28 00 00 00 | EF 00 00 00 00 00 00 00 00 03 00 00 01 00 00 00  FF FF FF FF 00 80 0A 00 00 80 00 00 00 00 00 00  80 33 8B 02 9C 00 00 00 card: Nausicaan discovered in R1
<07> 28 00 00 00 | F0 00 00 00 00 00 FF FF 00 03 00 00 01 00 00 00  01 00 00 00 00 80 09 00 00 00 00 00 00 00 00 00  A8 22 C5 02 9C 00 00 00 card Ruah U15: 1 cruiser2
<08> 28 00 00 00 | F1 00 00 00 00 00 FF FF 00 03 00 00 01 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  80 81 79 01 9C 00 00 00 card
<09> 28 00 00 00 | F2 00 00 00 00 00 00 00 00 03 00 00 01 FF FF 10  FF FF 84 01 00 80 05 00 00 00 00 00 00 00 00 00  88 8D ED 03 9C 00 00 00 card: ship 84 01 got destroyed, still listed by AgtSh0, but missing from GShipList
<16> 28 00 00 00 | 6E AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  10 EF 8B 02 9C 00 00 00 fed
<17> 28 00 00 00 | 6F AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  E8 4B C5 02 9C 00 00 00 fed
<18> 28 00 00 00 | 70 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  80 15 C5 02 9C 00 00 00 fed
<19> 28 00 00 00 | 71 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  38 1B 8B 02 9C 00 00 00 fed
<20> 28 00 00 00 | 72 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  F8 20 C5 02 9C 00 00 00 fed
<21> 28 00 00 00 | 73 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  78 56 C5 02 9C 00 00 00 fed
<22> 28 00 00 00 | 74 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  D0 21 C5 02 9C 00 00 00 fed
<23> 28 00 00 00 | 75 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  F0 11 C5 02 9C 00 00 00 fed
<24> 28 00 00 00 | 76 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  A8 14 C5 02 9C 00 00 00 fed
<25> 28 00 00 00 | 77 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  B8 1D 8B 02 9C 00 00 00 fed
<26> 28 00 00 00 | 78 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  A8 DF 88 03 9C 00 00 00 fed
<27> 28 00 00 00 | 79 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  A8 25 C5 02 9C 00 00 00 fed
<28> 28 00 00 00 | 7A AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  E0 69 8B 02 9C 00 00 00 fed
<29> 28 00 00 00 | 7B AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  E0 66 8B 02 9C 00 00 00 fed
<30> 28 00 00 00 | 7C AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  C0 34 8B 02 9C 00 00 00 fed
<31> 28 00 00 00 | 7D AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  60 35 8B 02 9C 00 00 00 fed
<32> 28 00 00 00 | 7E AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  18 09 8B 02 9C 00 00 00 fed
<33> 28 00 00 00 | 7F AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  80 67 8B 02 9C 00 00 00 fed
<34> 28 00 00 00 | 80 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  18 1D 8B 02 9C 00 00 00 fed
<35> 28 00 00 00 | 81 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  00 36 8B 02 9C 00 00 00 fed
<36> 28 00 00 00 | 82 AB AA 2A 01 00 FF FF 00 03 00 00 02 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  A0 36 8B 02 9C 00 00 00 fed
<37> 28 00 00 00 | 83 AB AA 2A 01 00 FF FF 00 03 00 00 12 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  D8 1B 8B 02 9C 00 00 00 fed/rom
<45> 28 00 00 00 | C7 55 55 55 02 00 FF FF 00 03 00 00 04 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  D0 ED 8B 02 9C 00 00 00 ferg
<46> 28 00 00 00 | C8 55 55 55 02 00 FF FF 00 03 00 00 04 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  98 1A 8B 02 9C 00 00 00 ferg
<50> 28 00 00 00 | CC 55 55 55 02 00 00 00 00 03 00 00 04 FF FF 10  FF FF 6A 01 00 80 05 00 00 00 00 00 00 00 00 00  28 8E ED 03 9C 00 00 00 ferg: ship 6A 01 got destroyed, still listed by AgtSh2, but missing from GShipList
<57> 28 00 00 00 | 4A 00 00 80 03 00 FF FF 00 03 00 00 0A 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  F8 19 8B 02 9C 00 00 00 klng/fed
<58> 28 00 00 00 | 4B 00 00 80 03 00 00 00 00 03 00 00 00 FF FF FB  FF FF FF FF 00 00 05 00 00 00 00 00 00 00 00 00  00 54 FA 04 9C 00 00 00 klng: built Scout II "IKC Dughro' B" in Eden
<59> 28 00 00 00 | 4C 00 00 80 03 00 00 00 00 03 00 00 08 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  A0 54 FA 04 9C 00 00 00 klng
<62> 28 00 00 00 | 3D AB AA AA 04 00 FF FF 00 03 00 00 10 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  20 34 8B 02 9C 00 00 00 rom
<63> 28 00 00 00 | 3E AB AA AA 04 00 FF FF 00 03 00 00 10 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  30 8A 79 01 9C 00 00 00 rom
<64> 28 00 00 00 | 3F AB AA AA 04 00 FF FF 00 03 00 00 10 00 00 00  FF FF FF FF 00 80 04 00 00 00 00 00 00 00 00 00  E8 87 79 01 9C 00 00 00 rom
<65> 28 00 00 00 | 40 AB AA AA 04 00 FF FF 00 03 00 00 11 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  80 26 C5 02 9C 00 00 00 rom/card
<66> 28 00 00 00 | 41 AB AA AA 04 00 FF FF 00 03 00 00 12 00 00 00  00 00 00 00 00 00 24 00 00 00 00 00 00 00 00 00  40 69 8B 02 9C 00 00 00 rom/fed
<67> 28 00 00 00 | 42 AB AA AA 04 00 FF FF 00 03 00 00 12 00 00 00  01 00 00 00 00 00 10 00 00 00 00 80 00 00 00 00  60 53 FA 04 9C 00 00 00 rom/fed: 5 rom cruisers attack Qualor
<70> 28 00 00 00 | 98 55 55 D5 26 00 FF FF 00 03 00 00 00 00 00 00  FF FF FF FF 00 00 05 00 00 00 00 00 00 00 00 00  78 08 8B 02 9C 00 00 00 chodak alien / Juggernaut
<71> 28 00 00 00 | 99 55 55 D5 26 00 FF FF 00 03 00 00 40 00 00 00  FF FF FF FF 00 00 04 00 00 00 00 00 00 00 00 00  40 37 8B 02 9C 00 00 00 chodak alien / Juggernaut
<74> 28 00 00 00 | 9C 55 55 D5 17 00 00 00 00 03 00 00 00 00 00 00  FF FF FF FF 00 80 0A 00 00 80 00 00 00 00 00 00  E0 32 8B 02 9C 00 00 00 Nausicaan: card discovered in R1
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----- ----- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   unk4  shpId flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  -----------                                                              0x28
                                                    race flags      ?deps->evt
5: military result header with military ordInfo sub-entry (little endian)

Code: Select all

<10> 28 00 00 00 | F3 00 00 00 00 00 FF FF 00 03 00 00 01 00 00 00  01 00 00 00 00 80 13 00 00 00 00 00 18 C4 C5 02  30 ED 8B 02 9C 00 00 00 card Canopus: 1 colony ship2
<51> 28 00 00 00 | CD 55 55 55 02 00 00 00 00 03 00 00 04 00 00 00  FF FF FF FF 00 80 10 00 00 01 00 00 38 10 ED 03  70 EE 8B 02 9C 00 00 00 ferg Moab: 1 light raider II
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----- ----- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   unk4  shpId flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  -----------                                                              0x28
                                                    race flags      ?deps->evt
6: intel result header (little endian)

Code: Select all

<14> 28 00 00 00 | F7 00 00 00 00 00 00 00 00 04 00 00 00 FF FF FB  FF FF FF FF 00 80 00 00 00 00 00 00 00 00 00 00  58 E8 8B 02 74 00 00 00 discovored military structure of the federation
<15> 28 00 00 00 | F8 00 00 00 00 00 00 00 00 04 00 00 00 FF FF 00  FF FF FF FF 00 80 00 00 00 00 00 00 00 00 00 00  88 01 8B 02 74 00 00 00 lost important spion to the ferengi
<44> 28 00 00 00 | 8A AB AA 2A 01 00 00 00 00 04 00 00 00 FF FF FB  FF FF FF FF 00 80 00 00 00 00 00 00 00 00 00 00  00 02 8B 02 74 00 00 00 enemy agents received secret military data
<55> 28 00 00 00 | D1 55 55 55 02 00 00 00 00 04 00 00 00 FF FF A2  FF FF FF FF 00 80 00 00 00 00 00 00 00 00 00 00  E0 E7 8B 02 74 00 00 00 repelled cardassian sabotage network
---- -----------   ----------- ----- ----- ----- ----- -- ----- --  ----------- ----- ----- ----------- -----------  ----------- -----------
entr size          resultId    race  unk1  type  emp1   | unk2  |   ?unused     flgs1 cntT  flags2      subAddr      contentAddr contentSize
nbr                0x00                                 |     ?evt  0x10                                             0x20                    0x28
                                                    race flags
entr nbr:               the save7.sav result.lst entry number
size:                   Uncompressed chunk data size of the result header.

0x00-0x03 resultId:     incremented unique result number, starting at different offsets for the races:
                          card: 01 00 00 00 (little endian) = 1
                          fed:  AA AA AA 2A (little endian) = max_uint * 1/6
                          ferg: 55 55 55 55 (little endian) = max_uint * 2/6
                          klng: FF FF FF 7F (little endian) = max_uint * 3/6
                          rom:  AA AA AA AA (little endian) = max_uint * 4/6
                          max_uint (unsigned) = 0xFFFFFFFF = 4294967295 decimal
                          The klingon 0x8000004D here ofc flipped all F when it reached 0x80000000.
0x04-0x05 race:         the race id (card:0 fed:1 ferg:2 klng:3 rom:4 like usual)
0x06-0x07 unk1:         unknown, sometimes FF FF = -1
0x08-0x0B type:         the entry type
                          00 00 ?? none in save7, but refer bottom ordInfo
                          00 01 for economic results (little endian)
                          00 02 ?? none in save7, but refer bottom ordInfo
                          00 03 for military results
                          00 04 for intel results
                          00 05 for diplomatic results
                          00 06 for mp ship update
                          00 07 for labor results
0x0C-0x0D emp1:         always empty 00 from what I've seen
0x0E race flags:        flags for all the involved races (card:1 fed:2 ferg:4 klng:8 rom:10, no minors)
0x0F evt:               likely some event type identifier
                          10 -> ship destroyed in battle, cntT = 05
                          9D -> ship or structure gained
                          B5 -> ship or structure lost
                          D1 -> ship lost on system attack
                          FB -> unit spawned, shared for at least result2, ship, intel and diplomacy results
---------
economic ordInfo results:
0x10-0x13 sysId:        system/star id, but this isn't consistent for other entry types, see below
military results:
0x10-0x11 unk4:         For military results, this obviously is not the system id. It might be some boolean, I dunno.
0x12-0x13 shpId:        Instead of the system id, we now sometimes have a ship id listed.
---------
0x14-0x15 flags1:       some event dependent flags it seems
0x16-0x17 cntT:         content related event type
                          00 'none', shared for economic, intel and other results
                        - economic results
                          06 EnergyShortage,
                          1F EnthusedTrading, happy trading happening
                          40 PlanetaryShift, when a planet gets barren
                        - military results
                          04 TaskForceEvent for movement, details list the task force id
                          05 ShipEvent for ships built or lost, details list the ship id
                          09 Unknown, but occured with one cruiser that possibly reached home destination, details list the sector index
                          0A RaceDiscovery, when a race got discovered, no task force, sector or system details...
                          10 SystemManeuver, happens by system attack and system protect it seems, details list both the system and task force id
                          13 Terraformed, happens on terraform progress or completion, details list both the system and task force id
                          24 Combat, occures by encounter or battle, the race flags have always more than one race listed, but no task force...
                        - diplomatic results
                          14 Encouragement, when sabotage is encouraged
                          15 Rejection, when some alliance or war pact is rejected
                          17 Demand, a demand for credits is sent
                          19 Gift, when credits are sent
0x18-0x1B flags2:       some event dependent flags it seems
0x1C-0x1F subAddr:      most likely the loaded memory address of the ordInfo sub-entry data
0x20-0x23 contentAddr:  most likely the loaded memory address of the content data
0x24-0x27 contentSize:  the content entry data size
That's for the entry header, next comes the actual data contents I analysed.

edit: updated intelInfo analysis
Last edited by Flocke on Tue Mar 28, 2023 1:37 pm, edited 20 times in total.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

Ofc course I didn't stop with the entry headers. Here comes the rest.


economic result 0x10
==================

1: economic result data without sub-entry

Code: Select all

<38> 10 00 00 00 | 00 00 00 00 FF 7F 00 00 19 00 49 00 01 00 00 00 Carema    (fed y:5 x:14):  ?insufficient energy
<39> 10 00 00 00 | 00 00 00 00 FE FF FF FF 19 00 49 00 00 00 00 00 Carema    (fed y:5 x:14):  ?insufficient energy
<49> 10 00 00 00 | 00 00 00 00 09 00 00 00 25 00 49 00 02 00 00 00 Moab      (ferg y:8 x:10): enthused on new trading (Begeisterung, neuer Handel)
<56> 10 00 00 00 | 00 00 00 00 03 00 00 00 17 00 49 00 01 00 00 00 Marlonia  (klng y:5 x:B):  planet 4 became barren (unfruchtbar)
---- -----------   ----------- ----- ----- ----- ----- -----------
entr size          treatyId    evtId unk1  sysId unk3  unk4
nbr                0x00                                type        0x10
0x00-0x03 treatyId: the entry id for above treaty file
0x04-0x05 evtId: the event type it seems
0x08-0x09 sysId: the system / star id
0x0C-0x0F unk4: some type or flags it seems

2: economic result data with economic ordInfo sub-entry

Code: Select all

<11> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Ariannus  (card):          upgraded type 6 constr. yard
<12> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Tycho     (card):          upgraded type 2 constr. yard
<13> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Canopus   (card):          built typ 1 shadow team
<40> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00           (fed)            sent 7335 credits to the ferengi
<41> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Carema    (fed):           built type 1 plasma reactor
<42> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Rochani   (fed):           built wind turbines
<43> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Qualor    (fed):           built type 1 autom. farm
<47> 10 00 00 00 | FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 Diplomacy (fed):           rejected alliance or war pact
<48> 10 00 00 00 | FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 Diplomacy (fed):           sent ferengi 7335 credits
<52> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00           (ferg):          sent 665 credits to the takarians
<53> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Harrakis  (ferg):          built shied generator
<54> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Kostolain (ferg):          upgraded type 2 market
<60> 10 00 00 00 | 00 00 00 00 91 01 00 00 FF FF 49 00 00 00 00 00 Eden      (klng):          built Scout II: IKC Dughro' B
<61> 10 00 00 00 | FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 Diplomacy (fed):           demand 5345 credits, immediate
<68> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Mintaka   (rom):           upgraded type 3 energy exchange
<69> 10 00 00 00 | 00 00 00 00 FE FF FF FF FF FF 49 00 00 00 00 00 Romulus   (rom):           built orbital battery
<72> 10 00 00 00 | 78 02 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 Diplomacy (ferg):          Selay ??friendship
<73> 10 00 00 00 | FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 Diplomacy (ferg):          sent takarians 665 credits
---- -----------   ----------- ----- ----- ----- ----- -----------
entr size          treatyId    shpId unk1  unk2  unk3  unk4
nbr                0x00                                            0x10
0x04-0x05 shpId: here the evtId actually is the ship id, at least for the single entry using it

3: economic result data with diplomatic ordInfo sub-entry

Code: Select all

<03> 10 00 00 00 | FF FF FF FF 04 00 FF FF 00 00 00 00 00 00 00 00 Diplomacy (rom):           please keep sabotaging the klingons
---- -----------   ----------- ----- ----- ----- ----- -----------
entr size          treatyId    evtId unk1  unk2  unk3  unk4
nbr                0x00                                            0x10
Well, I play the german version, therefore here the actual event text of save7.sav:
<03> Diplomacy(rom):  "Alles, was die Klingonen schädigt, ist für uns eine willkommene Neuigkeit. Setzen Sie mit allen Mitteln Ihre Sabotage fort!"
<47> Diplomacy(fed):  "Ihre Feinde sind nicht unsere Feinde. Der Preis einer Allianz erscheint uns im Moment zu hoch."
<48> Diplomacy(fed):  "Föderation übertrugen 7335 Credits an Ferengi"
<61> Diplomacy(fed):  "Wir haben über viele Ihrer Aktivitäten hinweggesehen. Wir werden es auch weiterhin tun, wenn Sie bereit sind, in bestimmtem Umfang Wiedergutmachung zu leisten."
<72> Diplomacy(ferg): <Doesn't show any player event, but from what I found the ferengi likely accepted a friendship treaty with the Selay.>
<73> Diplomacy(ferg): "Ferengi übertrugen 665 Credits an Takaraner"

military result 0x9C
=================

0x00-0x4B

Code: Select all

<01> 9C 00 00 00 | FF 12 FF FF FF FF FF FF F9 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card
<02> 9C 00 00 00 | FF EF FF FF FF FF FF FF EE 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 card
<04> 9C 00 00 00 | FF 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 01 00 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 card/fed
<05> 9C 00 00 00 | FF 1B FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card/ferg
<06> 9C 00 00 00 | 00 32 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00  00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 card: Nausicaan discovered in R1
<07> 9C 00 00 00 | 00 81 FF FF FF FF FF FF FF FF FF FF 72 01 FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 card Ruah U15: 1 cruiser2
<08> 9C 00 00 00 | FF 8D FF FF FF FF FF FF AA 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 card
<09> 9C 00 00 00 | FF ED FF FF FF FF FF FF FF FF 84 01 FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 card: ship 84 01 got destroyed
<10> 9C 00 00 00 | FF 8E FF FF FF FF FF FF C8 04 FF FF FF FF 3F 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card Canopus: 1 colony ship2
<16> 9C 00 00 00 | FF 4B FF FF FF FF FF FF FA 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<17> 9C 00 00 00 | FF 15 FF FF FF FF FF FF FB 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<18> 9C 00 00 00 | FF 1B FF FF FF FF FF FF FC 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<19> 9C 00 00 00 | FF 20 FF FF FF FF FF FF D6 03 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<20> 9C 00 00 00 | FF 56 FF FF FF FF FF FF DD 03 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<21> 9C 00 00 00 | FF 21 FF FF FF FF FF FF 58 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<22> 9C 00 00 00 | FF 11 FF FF FF FF FF FF 67 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<23> 9C 00 00 00 | FF 14 FF FF FF FF FF FF 81 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<24> 9C 00 00 00 | FF 1D FF FF FF FF FF FF AF 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 fed
<25> 9C 00 00 00 | FF DF FF FF FF FF FF FF B0 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<26> 9C 00 00 00 | FF 25 FF FF FF FF FF FF B1 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<27> 9C 00 00 00 | FF 69 FF FF FF FF FF FF B2 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<28> 9C 00 00 00 | FF 66 FF FF FF FF FF FF B3 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<29> 9C 00 00 00 | FF 34 FF FF FF FF FF FF B4 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 fed
<30> 9C 00 00 00 | FF 35 FF FF FF FF FF FF B5 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<31> 9C 00 00 00 | FF 09 FF FF FF FF FF FF B6 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 fed
<32> 9C 00 00 00 | FF 67 FF FF FF FF FF FF B7 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<33> 9C 00 00 00 | FF 1D FF FF FF FF FF FF B8 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<34> 9C 00 00 00 | FF 36 FF FF FF FF FF FF B9 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed
<35> 9C 00 00 00 | FF 36 FF FF FF FF FF FF BA 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<36> 9C 00 00 00 | FF ED FF FF FF FF FF FF BB 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00 01 0C 00 00 fed
<37> 9C 00 00 00 | FF 33 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 04 00 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 fed/rom
<45> 9C 00 00 00 | FF 1A FF FF FF FF FF FF FD 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 ferg
<46> 9C 00 00 00 | FF 34 FF FF FF FF FF FF F4 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 ferg
<50> 9C 00 00 00 | FF EE FF FF FF FF FF FF FF FF 6A 01 FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 ferg: ship 6A 01 got destroyed
<51> 9C 00 00 00 | FF 53 FF FF FF FF FF FF FD 04 FF FF FF FF 25 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 ferg Moab: 1 light raider II
<57> 9C 00 00 00 | FF 26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 01 00 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00 01 0C 00 00 klng/fed
<58> 9C 00 00 00 | FF 54 FF FF FF FF FF FF FF FF 91 01 FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 klng: built Scout II "IKC Dughro' B" in Eden
<59> 9C 00 00 00 | FF 55 FF FF FF FF FF FF 01 05 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 klng
<62> 9C 00 00 00 | FF 8A FF FF FF FF FF FF FE 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 rom
<63> 9C 00 00 00 | FF 87 FF FF FF FF FF FF FF 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 rom
<64> 9C 00 00 00 | FF 08 FF FF FF FF FF FF F5 04 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 rom
<65> 9C 00 00 00 | FF 69 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 rom/card
<66> 9C 00 00 00 | FF 1C FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00 00 00 00 00 rom/fed
<67> 9C 00 00 00 | FF 54 FF FF FF FF FF FF FF FF FF FF FF FF 10 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00  03 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00  09 00 00 00 00 00 00 00 00 00 00 00 rom/fed: 5 rom cruisers attack Qualor
<70> 9C 00 00 00 | FF 37 FF FF FF FF FF FF FF FF 90 01 FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 chodak alien / Juggernaut
<71> 9C 00 00 00 | FF 19 FF FF FF FF FF FF 00 05 FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 6E 69  FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 chodak alien / Juggernaut
<74> 9C 00 00 00 | 17 22 FF FF FF FF FF FF FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 6E 69  00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 01 0C 00 00 Nausicaan: card discovered in R1
---- -----------   -- -- ----- ----------- ----- ----- ----- -----  ------------------------------------------------------------------------------------ ----- -----  ----------- ----------- -----------------------  ----------- ----------- ----- -----
entr size          r  ?  unk1  unk2        tfId  shpId sctr  sysId  empty1                                                                               trgt  unk3   sector row  sector col  empty2                   unk4        unk5        unk6  emp3
nbr                0x00                                idx          0x10                                             0x20                                race         0x30                                             09 = sys                            0x4B
                                                                                                                                                                                                                       attack
0x00 r:                 for some events it includes a one byte race identifier it seems, 0x00 = Cardassians, 0x17 = Nausicaans
0x01 ?:                 these are no flags and it doesn't seem to be a valid identifier either, let me know if you have a clue
0x08-0x09 tfId:         the task force id, or -1
0x0A-0x0B shpId:        the ship id, or -1
0x0C-0x0D sctr idx:     the computed sector index (row*columns + column-1, same like the outpost ids), or -1
0x0E-0x0F sysId:        the system id, or -1
0x2C-0x2D trgt race:    e.g. the race id for the discovered race, or -1
0x30-0x33 sector row:   the sector row this event is taking place, or -1
0x34-0x37 sector col:   the sector column this event is taking place, or -1
most of these values are optional and set to -1 (FF) if not available

0x4C-0x9B

Code: Select all

<01> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 F6 64 65 72 61 74 69 6F 6E 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card
<02> 54 61 72 73  3C 00 00 00 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 card
<04> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 61 72 61 6E 65 72 00 72 00  AC 57 01 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 card/fed
<05> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card/ferg
<06> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 4E 61 75 73 69 63 61 61 6E 65 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card: Nausicaan discovered in R1
<07> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 card Ruah U15: 1 cruiser2
<08> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 card
<09> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 card: ship 84 01 got destroyed
<10> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 F6 64 65 72 61 74 69 6F 6E 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 card Canopus: 1 colony ship2
<16> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<17> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<18> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 F6 64 65 72 61 74 69 6F 6E 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<19> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 72 64 61 73 73 69 61 6E 65 72  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<20> 54 61 72 73  3C 00 00 00 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<21> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 72 65 6E 67 69 00 00 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<22> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 72 65 6E 67 69 00 65 72 00 72  20 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<23> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 72 65 6E 67 69 00 65 72 00 72  20 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<24> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<25> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6E 67 6F 73 69 61 6E 65 72 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<26> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 72 64 61 73 73 69 61 6E 65 72  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<27> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<28> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 6E 7A 69 74 65 6E 00 00 00 00  AC 57 01 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<29> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<30> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<31> 00 00 00 00  3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6C 61 6D 61 72 61 69 6E 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<32> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<33> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 00 00  AC 57 01 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<34> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<35> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 fed
<36> 54 61 72 73  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 6C 61 79 00 74 69 6F 6E 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed
<37> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 fed/rom
<45> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 00 00  AC 57 01 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 ferg
<46> 54 61 72 73  3C 00 00 00 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 ferg
<50> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6B 64 6F 72 6E 00 72 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 ferg: ship 6A 01 got destroyed
<51> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 ferg Moab: 1 light raider II
<57> 54 61 72 73  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 00 00  AC 57 01 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 klng/fed
<58> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 klng: built Scout II "IKC Dughro' B" in Eden
<59> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 klng
<62> 00 00 00 00  7B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 rom
<63> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 rom
<64> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6E 67 6F 73 69 61 6E 65 72 00 00  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 rom
<65> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 75 DF 65 6E 70 6F 73 74 65 6E 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 rom/card
<66> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 6F 6D 75 6C 61 6E 65 72 00 72 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 rom/fed
<67> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 61 6C 61 6D 61 72 61 69 6E 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 rom/fed: 5 rom cruisers attack Qualor
<70> 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 65 72 65 6E 67 69 00 65 72 00 72  20 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 chodak alien / Juggernaut
<71> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 53 53 20 53 61 72 61 74 6F 67 61  20 41 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 chodak alien / Juggernaut
<74> 54 61 72 73  75 73 20 49 49 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 43 61 72 64 61 73 73 69 61 6E 65 72  00 00 00 00 02 00 D3 01 00 00 00 00 6C 02 6C 02  01 00 00 00 02 0A 00 00 00 00 00 00 Nausicaan: card discovered in R1
---- -----------  ------------------------------------------------------------------------------------------------------------- ------------------------------------------------ ------------------------------------------------------------------------
entr |            | <-- up to 9 shpIds                                                                                    --> | name: race, ship, outpost - 00 terminated        likely unused memory garbage of the name, total would be 40 characters
nbr  | <-- usually just memory garbage, here Tarsus II, 00 terminated, totals 40 characters                               --> | first letter usually zeroed out
     0x4C                                                          0x60                                             0x70                                             0x80                                             0x90                                0x9C

intel result 0x74
==============

0x00-0x37

Code: Select all

<14> 74 00 00 00 | 1E 00 00 00 00 01 00 00 01 00 00 00 00 00 00 00  47 65 68 65 69 6D 64 69 65 6E 73 74 20 65 6E 74  64 65 63 6B 74 65 20 20 6D 69 6C 69 74 E4 72 69  73 63 68 65 20 45 69 6E
<15> 74 00 00 00 | 1F 00 00 00 00 02 64 81 02 00 00 00 00 00 00 00  44 65 72 20 47 65 68 65 69 6D 64 69 65 6E 73 74  20 76 65 72 6C 6F 72 20 65 69 6E 65 6E 20 77 69  63 68 74 69 67 65 6E 20
<44> 74 00 00 00 | 16 00 00 00 FF 01 00 00 01 00 00 00 04 00 00 00  46 65 69 6E 64 6C 69 63 68 65 20 41 67 65 6E 74  65 6E 20 68 61 62 65 6E 20 67 65 68 65 69 6D 65  20 4D 69 6C 69 74 E4 72
<55> 74 00 00 00 | 22 00 00 00 00 02 64 81 02 00 00 00 04 00 00 00  53 61 62 6F 74 61 67 65 6E 65 74 7A 77 65 72 6B  20 64 65 72 20 43 61 72 64 61 73 73 69 61 6E 65  72 20 20 75 6E 73 63 68
---- -----------   ----------- -- -- ----- ----------- -----------  -------------------------------------------------------------------------------------------------------------------------
entr size          type        u1 |  unk2  ?kind       ?actor       description text
nbr                0x00           ?kind                             0x10                                             0x20                                             0x30                    0x37
0x38-0x73

Code: Select all

<14> 72 69 63 68 74 75 6E 67  20 64 65 72 20 46 F6 64 65 72 61 74 69 6F 6E 20  00 C7 52 00 F0 BD 48 00 90 09 1B 05 20 00 1B 05  00 00 00 00 3B 00 00 00 23 00 00 00 B0 53 2E 03  C6 51 1B 05
<15> 41 67 65 6E 74 65 6E 20  61 6E 20 64 69 65 20 46 65 72 65 6E 67 69 20 00  FA C7 52 00 F0 BD 48 00 20 03 1B 05 20 00 1B 05  00 00 00 00 3B 00 00 00 23 00 00 00 7C 1B B1 02  C6 51 1B 05
<44> 64 61 74 65 6E 20 65 72  68 61 6C 74 65 6E 2E 00 90 09 1B 05 30 00 1B 05  FA C7 52 00 F0 BD 48 00 F0 12 1B 05 20 00 1B 05  00 00 00 00 3B 00 00 00 23 00 00 00 B1 53 2E 03  C6 51 1B 05
<55> E4 64 6C 69 63 68 20 67  65 6D 61 63 68 74 00 00 20 03 1B 05 64 B9 5A 00  8C B9 5A 00 F0 BD 48 00 B0 03 1B 05 20 00 1B 05  00 00 00 00 3B 00 00 00 23 00 00 00 7D 1B B1 02  C6 51 1B 05
---- ---------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------
entr description text, ends on 00                                                 likely unused memory garbage of the description text, total would be 100 characters
nbr  0x38                     0x40                                             0x50                                             0x60                                             0x70        0x74
<14> discovored military structure of the federation (Geheimdienst entdeckte  militärische Einrichtung der Föderation)
<15> lost important spion to the ferengi (Der Geheimdienst verlor einen wichtigen Agenten an die Ferengi)
<44> enemy agents received secret military data (Feindliche Agenten haben geheime Militärdaten erhalten.)
<55> repelled cardassian sabotage network (Sabotagenetzwerk der Cardassianer  unschädlich gemacht)

kind:
01 = espionage
02 = sabotage

actor:
00 = self
04 = enemy
That's for the result entry content, next comes the often referenced ordInfo details.


--- ordInfo details ---


ordInfo header 0x20 (same for ordInfo & result.lst)
=================

economy:

Code: Select all

<11> 20 00 00 00 | 98 B0 02 00 BE 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 40 56 C5 02 70 19 4E 00 34 00 00 00 Ariannus  (card): upgraded type 6 constr. yard
<12> 20 00 00 00 | DB BA 02 00 C0 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 C8 66 C5 02 70 19 4E 00 34 00 00 00 Tycho     (card): upgraded type 2 constr. yard
<13> 20 00 00 00 | F7 BA 02 00 C0 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 B8 11 C5 02 70 19 4E 00 34 00 00 00 Canopus   (card): built typ 1 shadow team
<40> 20 00 00 00 | A3 CD AD 2A C1 00 00 00 01 00 00 00 00 00 00 00  00 00 00 00 30 C5 88 02 70 19 4E 00 34 00 00 00           (fed):  sent 7335 credits to the ferengi
<41> 20 00 00 00 | BA C1 AD 2A C0 00 00 00 01 00 00 00 00 00 00 00  00 00 00 00 18 1A C5 02 70 19 4E 00 34 00 00 00 Carema    (fed):  built type 1 plasma reactor
<42> 20 00 00 00 | E4 C1 AD 2A C0 00 00 00 01 00 00 00 00 00 00 00  00 00 00 00 80 94 88 02 70 19 4E 00 34 00 00 00 Rochani   (fed):  built wind turbines
<43> 20 00 00 00 | 1A CB AD 2A C1 00 00 00 01 00 00 00 00 00 00 00  00 00 00 00 60 5E C5 02 70 19 4E 00 34 00 00 00 Qualor    (fed):  built type 1 autom. farm
<52> 20 00 00 00 | 47 E4 57 55 C1 00 00 00 02 00 00 00 00 00 00 00  00 00 00 00 00 C3 88 02 70 19 4E 00 34 00 00 00           (ferg): sent 665 credits to the takarians
<53> 20 00 00 00 | C3 DB 57 55 C0 00 00 00 02 00 00 00 00 00 00 00  00 00 00 00 C0 20 C5 02 70 19 4E 00 34 00 00 00 Harrakis  (ferg): built shied generator
<54> 20 00 00 00 | AB DC 57 55 C0 00 00 00 02 00 00 00 00 00 00 00  00 00 00 00 38 CA 88 02 70 19 4E 00 34 00 00 00 Kostolain (ferg): upgraded type 2 market
<60> 20 00 00 00 | B5 62 15 80 BD 00 00 00 03 00 00 00 00 00 00 00  00 00 00 00 D8 8C 88 02 70 19 4E 00 34 00 00 00 Eden      (klng): built Scout II: IKC Dughro' B
<68> 20 00 00 00 | CB 6F AC AA C0 00 00 00 04 00 00 00 00 00 00 00  00 00 00 00 38 A6 88 02 70 19 4E 00 34 00 00 00 Mintaka   (rom):  upgraded type 3 energy exchange
<69> 20 00 00 00 | 38 74 AC AA C1 00 00 00 04 00 00 00 00 00 00 00  00 00 00 00 28 65 C5 02 70 19 4E 00 34 00 00 00 Romulus   (rom):  built orbital battery
---- -----------   ----------- ----------- ----- ----- -----------  ----------- ----------- ----------- -----------
entr size          orderId     turn        race  unk1  empty1       type        contentAddr subroutine  contentSize
nbr                0x00                                             0x10                                            0x20
military:

Code: Select all

<10> 20 00 00 00 | D2 C0 02 00 C1 00 00 00 00 00 00 00 00 00 00 00  02 00 00 00 48 15 C5 02 70 19 4E 00 34 00 00 00 Canopus   (card): 1 colony ship2
<51> 20 00 00 00 | 3F E4 57 55 C1 00 00 00 02 00 00 00 00 00 00 00  02 00 00 00 C8 A5 88 02 70 19 4E 00 34 00 00 00 Moab      (ferg): 1 light raider II
---- -----------   ----------- ----------- ----- ----- -----------  ----------- ----------- ----------- -----------
entr size          orderId     turn        race  unk1  empty1       type        contentAddr subroutine  contentSize
nbr                0x00                                             0x10                                            0x20
diplomacy:

Code: Select all

<03> 20 00 00 00 | AA 73 AC AA C1 00 00 00 04 00 00 00 00 00 00 00  05 00 00 00 B0 05 E7 03 70 19 4E 00 8C 04 00 00 Diplomacy (rom):  please keep sabotaging the klingons
<47> 20 00 00 00 | D4 C7 AD 2A C1 00 00 00 01 00 00 00 00 00 00 00  05 00 00 00 08 03 33 03 70 19 4E 00 8C 04 00 00 Diplomacy (fed):  rejected alliance or war pact
<48> 20 00 00 00 | 18 CC AD 2A C1 00 00 00 01 00 00 00 00 00 00 00  05 00 00 00 28 29 93 02 70 19 4E 00 8C 04 00 00 Diplomacy (fed):  sent ferengi 7335 credits
<61> 20 00 00 00 | D9 C7 AD 2A C1 00 00 00 01 00 00 00 00 00 00 00  05 00 00 00 40 0A E7 03 70 19 4E 00 8C 04 00 00 Diplomacy (fed):  demand 5345 credits, immediate
<72> 20 00 00 00 | 21 E2 57 55 C1 00 00 00 02 00 00 00 00 00 00 00  05 00 00 00 80 04 64 03 70 19 4E 00 8C 04 00 00 Diplomacy (ferg): Selay ??friendship
<73> 20 00 00 00 | 60 E3 57 55 C1 00 00 00 02 00 00 00 00 00 00 00  05 00 00 00 08 03 8B 03 70 19 4E 00 8C 04 00 00 Diplomacy (ferg): sent takarians 665 credits
---- -----------   ----------- ----------- ----- ----- -----------  ----------- ----------- ----------- -----------
entr size          orderId     turn        race  unk1  empty1       type        contentAddr subroutine  contentSize
nbr                0x00                                             0x10                                            0x20
0x00-0x03 orderId:  similar to the resultId from result.lst this looks to be incremented starting from a race offset [raceId*max_uint/6]
0x04-0x07 turn:     likely the turn this order got issued, where 0 ist first turn (C1=>194, current=195) (already known)
0x08-0x09 race:     the race id this event is related to (already known)
0x0A-0x0B unk1:     some unknown flags I found used in a BOPL game
0x10-0x13 type:     the order type
                      0 for economic orders (already known)
                      1 ?? none in save7, but refer result.lst
                      2 for military orders (already known)
                      3 ?? none in save7, but refer result.lst
                      4 ?? by guess for intel results, refer result.lst
                      5 for diplomatic orders
                      7 for labor orders
                      8 wonder build orders

economic order 0x34 (same for ordInfo & result.lst)
==================

Code: Select all

<11> 34 00 00 00 | 02 00 00 00 43 00 00 80 5C 00 5D 00 06 00 00 00  02 00 00 00 FF FF FF FD FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Ariannus  (card): upgraded type 6 constr. yard
<12> 34 00 00 00 | 02 00 00 00 4D 00 00 80 58 00 59 00 06 00 00 00  02 00 00 00 FF FF FF 5A FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Tycho     (card): upgraded type 2 constr. yard
<13> 34 00 00 00 | 00 00 00 00 3F 00 00 80 6B 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF 59 FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Canopus   (card): built typ 1 shadow team
<40> 34 00 00 00 | 08 00 00 00 FF FF 00 80 FF 7F FF 7F 22 00 00 00  00 00 00 00 FF FF FF FB FF FF FF FF FF FF FF FF  00 00 00 00 A7 1C 00 00 00 00 00 00 02 00 00 00  00 00 00 00           (fed)   sent 7335 credits to the ferengi
<41> 34 00 00 00 | 00 00 00 00 19 00 00 80 A2 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF 49 FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Carema    (fed):  built type 1 plasma reactor
<42> 34 00 00 00 | 00 00 00 00 0B 00 00 80 13 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF 5A FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Rochani   (fed):  built wind turbines
<43> 34 00 00 00 | 00 00 00 00 10 00 00 80 90 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF 1D FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Qualor    (fed):  built type 1 autom. farm
<52> 34 00 00 00 | 08 00 00 00 FF FF 00 80 FF 7F FF 7F 22 00 00 00  00 00 00 00 FF FF FF FB FF FF FF FF FF FF FF FF  00 00 00 00 99 02 00 00 00 00 00 00 1B 00 00 00  00 00 00 00           (ferg): sent 665 credits to the takarians
<53> 34 00 00 00 | 00 00 00 00 35 00 00 80 14 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF 49 FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Harrakis  (ferg): built shied generator
<54> 34 00 00 00 | 02 00 00 00 2A 00 00 80 BE 00 BF 00 02 00 00 00  02 00 00 00 FF FF FF 6F FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Kostolain (ferg): upgraded type 2 market
<60> 34 00 00 00 | 00 00 00 00 53 00 00 80 FF 7F FF 7F 22 00 00 00  03 00 00 00 4C 00 FF 2F FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Eden      (klng): built Scout II: IKC Dughro' B
<68> 34 00 00 00 | 02 00 00 00 51 00 00 80 D1 00 D2 00 0E 00 00 00  02 00 00 00 FF FF FF A5 FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Mintaka   (rom):  upgraded type 3 energy exchange
<69> 34 00 00 00 | 00 00 00 00 06 00 00 80 05 00 FF 7F 22 00 00 00  01 00 00 00 FF FF FF A3 FF FF FF FF FF FF FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00  00 00 00 00 Romulus   (rom):  built orbital battery
---- -----------   ----------- ----- ----- ----- ----- -----------  ----------- ----- ----- -----------------------  ----------- ----------- ----------- ----- ------------------
entr size          type        sysId unk1  build upgr  unk2         subtype     shp   unk4  unk5                     empty1      crds spent  empty2      trgt  empty3
nbr                0x00              flags strct strct              0x10        type                                 0x20                                race                     0x30
                                           type  type
0x00-0x03 type:             economic order type
                              0 = build structure or ship
                              1 = buy
                              2 = upgrade structure
                              3 = scrap structure
                              7 = trade route
                              8 = send credits
                              and by SCT @ viewtopic.php?p=54283#p54283
                              9 = transfer dilithium (unfinished)
                              10 = transfer food (unfinished)
                              11 = transfer energy (unfinished)
0x04-0x05 sysId:            system or star id the order is assigned to, or -1
0x08-0x09 build strct type: the structure type being built, or FF 7F (max signed int)
0x0A-0x0B upgr strct type:  the structure upgrade being built, or FF 7F (max signed int)
0x10-0x13 subtype:          a more specific sub-type of the economic order type
                              0 = send credits
                              1 = build structure
                              2 = upgrade structure
                              3 = build ship
                              5 = build trade goods
0x14-0x15 shp type:         the ship type being built, or -1
0x24-0x27 crds spent:       the amount of credits being spent
0x2C-0x2D trgt race:        the race an action like a gift is directed at

military order 0x34 (same for ordInfo & result.lst)
================

Code: Select all

<10> 34 00 00 00 | 01 00 00 00 0E 00 00 00 0D 00 00 00 FF FF FF FF  FF FF FF FF 01 00 00 00 01 00 00 00 C8 04 FF FF  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  FF FF FF FF Canopus N15:  1 card colony ship II, likely completed to terraform another planet
<51> 34 00 00 00 | 01 00 00 00 08 00 00 00 10 00 00 00 FF FF FF FF  FF FF FF FF 02 00 00 00 01 00 00 00 FD 04 FF FF  00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF  FF FF FF FF Moab Q9:      1 ferg light raider II, likely been joined with a colony ship that now colonized the system
and for reference a few a few samples from ordInfo:
                   00 00 00 00 0D 00 00 00 02 00 00 00 06 00 00 00  14 00 00 00 00 00 00 00 FF FF FF FF 1B 03 FF FF  00 00 00 00 86 98 00 00 00 00 00 00 01 00 00 00  01 00 00 00 sector D13:   1 fed colony ship II
                   00 00 00 00 11 00 00 00 0B 00 00 00 02 00 00 00  01 00 00 00 00 00 00 00 FF FF FF FF FC 02 FF FF  00 00 00 00 87 98 00 00 00 00 00 00 02 00 00 00  02 00 00 00 sector D12:   1 fed science vessel II
                   00 00 00 00 0D 00 00 00 0F 00 00 00 03 00 00 00  12 00 00 00 00 00 00 00 FF FF FF FF 98 00 FF FF  00 00 00 00 5A DE 00 00 00 00 00 00 02 00 00 00  01 00 00 00 sector S8:    1 rom scout II (cloaked)
                   00 00 00 00 0F 00 00 00 0D 00 00 00 0E 00 00 00  14 00 00 00 00 00 00 00 FF FF FF FF 7F 04 FF FF  00 00 00 00 FC D2 00 00 00 00 00 00 01 00 00 00  01 00 00 00 sector E11:   1 card cruiser II
                   00 00 00 00 03 00 00 00 0D 00 00 00 08 00 00 00  15 00 00 00 00 00 00 00 FF FF FF FF 1B 00 FF FF  00 00 00 00 AE C1 00 00 00 00 00 00 01 00 00 00  03 00 00 00 sector P6:    9 klng battle cruiser II (cloaked)
                   00 00 00 00 0E 00 00 00 17 00 00 00 0B 00 00 00  14 00 00 00 00 00 00 00 FF FF FF FF EC 04 FF FF  00 00 00 00 FE D2 00 00 00 00 00 00 01 00 00 00  01 00 00 00 sector W14:   1 card cruiser II
                   00 00 00 00 0A 00 00 00 06 00 00 00 10 00 00 00  01 00 00 00 00 00 00 00 FF FF FF FF 12 04 FF FF  00 00 00 00 5C DE 00 00 00 00 00 00 02 00 00 00  01 00 00 00 sector C15:   1 rom scout II (cloaked)
                   00 00 00 00 0F 00 00 00 0D 00 00 00 0E 00 00 00  12 00 00 00 00 00 00 00 FF FF FF FF 0F 04 FF FF  00 00 00 00 8B 98 00 00 00 00 00 00 01 00 00 00  01 00 00 00 sector E11:   1 fed tt II
                   00 00 00 00 03 00 00 00 0D 00 00 00 02 00 00 00  10 00 00 00 00 00 00 00 FF FF FF FF C4 04 FF FF  00 00 00 00 93 98 00 00 00 00 00 00 01 00 00 00  02 00 00 00 sector O3:    1 fed destroyer II
                   00 00 00 00 03 00 00 00 0D 00 00 00 01 00 00 00  0E 00 00 00 00 00 00 00 FF FF FF FF F0 04 FF FF  00 00 00 00 97 98 00 00 00 00 00 00 01 00 00 00  01 00 00 00 sector O3:    1 fed light cruiser II
                   00 00 00 00 01 00 00 00 18 00 00 00 0D 00 00 00  0F 00 00 00 00 00 00 00 FF FF FF FF 89 04 FF FF  00 00 00 00 EF ED 01 00 00 00 00 00 02 00 00 00  03 00 00 00 sector P11:   1 ferg scout II
                   01 00 00 00 03 00 00 00 14 00 00 00 FF FF FF FF  FF FF FF FF 0E 00 00 00 01 00 00 00 FE 04 FF FF  00 00 00 00 00 00 00 00 00 00 00 00 5F 00 00 00  FF FF FF FF sector U4:    5 rom cruiser II attacking fed Qualor
---- -----------   ----------- ----------- ----------- -----------  ----------- ----------- ----------- ----- -----  ----------- ----------- ----------- -----------  -----------
entr size          type        dest row    dest col    start row    start col   mission     sys eff     tskf  unk1   empty1      unk2        empty2      missDat1     missDat2
nbr                0x00                                             0x10                                id           0x20                                             0x30        0x34
0x00-0x03 type:         military order type
                          0 = movement
                          1 = action (terraform, system attack, etc.)
0x04-0x07 dest row:     the destination sector row, for result.lst the reached destination
0x08-0x0B dest col:     the destination sector column, for result.lst the reached destination
0x0C-0x0F start row:    the start sector row when the order was initially given
0x10-0x13 start col:    the start sector column when the order was initially given
0x14-0x17 mission:      the already known task force / ship mission
                          0 = move
                          1 = terraform
                          2 = colonize
                          3 = raid
                          4 = intercept
                          5 = evade
                          6 = engage
                          7 = build outpost
                          8 = build starbase
                          9 = train crew
                          10 = ?expand
                          11 = ?invalid
                          12 = scrap
                          13 = enter wormhole
                          14 = attack system
0x18-0x1B sys eff:      whether the action is system effective like system attack, terraform or colonize
0x1C-0x1D tskf id:      the task force id
0x24-0x27 unk2:         Unknown, but for ordInfo the same as GTForceList / GWTForce 0x54-0x57. Looks like some counted identifier, but isn't listed by any other file.
0x2C-0x2F missDat1:     first mission value, which depends on the assigned mission
                          for the move mission, this looks to be the max range of the task force (0:short, 1:med, 2:large)
                          for terraform mission, it is the planet id (0 = right most)
                          for system attack, it is the computed sector index (row*columns + column-1, same like the outpost ids)
0x30-0x33 missDat2:     second mission value, which depends on the assigned mission
                          for the move mission this looks to be the speed when the order was given. The romulan scout here makes an exception, but I guess it just upgraded.

diplomatic order 0x48C (same for ordInfo & result.lst)
====================

0x00-0x39

Code: Select all

<03> 8C 04 00 00 | 07 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF rom:  please keep sabotaging the klingons
<47> 8C 04 00 00 | 02 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 FF FF FF FF 02 00 00 00 02 00 01 00 fed:  rejected alliance or war pact
<48> 8C 04 00 00 | 08 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 FF FF FF FF 08 00 00 00 01 00 02 00 fed:  sent ferengi 7335 credits
<61> 8C 04 00 00 | 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 FF FF FF FF 04 00 00 00 01 00 03 00 fed:  demand 5345 credits, immediate
<72> 8C 04 00 00 | 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 FF FF FF FF 05 00 00 00 19 00 02 00 ferg: Selay ??friendship
<73> 8C 04 00 00 | 08 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 FF FF FF FF 08 00 00 00 02 00 1B 00 ferg: sent takarians 665 credits
---- -----------   ----------- ----------- -------------------------------------------------------------------------------------------------------------------------  ----------- ----------- ----------- ----- -----
entr size          type        unk1        empty1                                                                                                                     player msg  unk2        type2       src   trgt
nbr                0x00                                             0x10                                             0x20                                             y/n                                 race  race  0x40
0x00-0x03 type:         diplomatic action type
                          00 = request money
                          02 = reject alliance or war pact
                          07 = encourage to keep sabotaging
                          08 = send credits
0x30-0x33 player msg:   whether the player gets to see a message in the event log
0x38-0x3B type2:        again some diplomatic action related type, but with a different value assignment
                        possibly this relates to the target effect
                          00 = encourage to keep sabotaging
                          02 = reject alliance or war pact
                          04 = request money
                          08 = send credits
0x3C-0x3D src race:     the race that issued the diplomatic action
0x3E-0x3F trgt race:    the race to that the diplomatic action is directed
0x40-0x83

Code: Select all

<03> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00  00 00 00 00 rom:  please keep sabotaging the klingons
<47> FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 02 00 00 00  00 00 00 00 fed:  rejected alliance or war pact
<48> 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 A7 1C 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 FF FF 00 00  00 00 00 00 fed:  sent ferengi 7335 credits
<61> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  E1 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 FF FF 00 00  C1 00 00 00 fed:  demand 5345 credits, immediate
<72> FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 19 00 00 00  00 00 00 00 ferg: Selay ??friendship
<73> 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 99 02 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 FF FF 00 00 FF FF 00 00  00 00 00 00 ferg: sent takarians 665 credits
---- -- -------------------------------- -----------  ----------- ----------------------- -----------  ----------- ------------------------------------------------------------ ----- ----- ----- -----  -----------
entr u3 empty2                           sent crds    req crds    empty3                  crds sent    crds req    empty4                                                       unk4  emp5  resp  emp6   turn
nbr  0x40                                ?gift        ?rsp expct                                       0x60                                             0x70                                race                     0x84
0x4C-0x4F sent crds:    some boolean or type value for when credits are sent, possibly a boolean for when a favor is made
0x50-0x53 req crds:     some boolean or type value for when demanding a payment, possibly a boolean for when a response is expected
0x5C-0x59 crds sent:    the credits being sent
0x60-0x63 crds req:     the credits that is asked for
0x7C-0x7D resp race:    set to the race that reacted on some message or event, or -1
0x80-0x83 turn:         the turn the message got sent (C1=>194, current=195), likely set when a response is expected
0x84-0x48B (all):

Code: Select all

01 00 00 00 XX ......................................... 00 00 00 00 00
----------- ----------------------------------------------- -----------
text y/n    400 bytes of text, 0A 00 terminated             empty
<03> " Alles, was die Klingonen schädigt, ist für uns eine willkommene Neuigkeit. Setzen Sie mit allen Mitteln Ihre Sabotage fort!"
<47> " Ihre Feinde sind nicht unsere Feinde. Der Preis einer Allianz erscheint uns im Moment zu hoch."
<48> no text -> Föderation übertrugen 7335 Credits an Ferengi
<61> " Wir haben über viele Ihrer Aktivitäten hinweggesehen. Wir werden es auch weiterhin tun, wenn Sie bereit sind, in bestimmtem Umfang Wiedergutmachung zu leisten. "
<72> no text
<73> no text -> Ferengi übertrugen 665 Credits an Takaraner
Now I'm done, just need to fix this UE thing. :eek:
Last edited by Flocke on Thu Mar 30, 2023 11:47 pm, edited 12 times in total.
User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 1884
Joined: Sun Apr 27, 2008 2:00 am

Re: UE Map Editor

Post by Spocks-cuddly-tribble »

Respect! Looks like great progress! Sadly I can't keep up to study most AFC post in detail or even just to read them.

- sub_448970 overwrites [GTForceList or GWTForce+30h] (you say sector index ID?) when ordering task forces with TTs to attack systems, so it should use the same location for both functions

- Of course we can refer to bit tables as flags and not masks from now on and you guys may use admin powers to change my older posts if you want to

And sorry if I caused any inconvenience with mentioning the ordInfo as source of the training crash. It's the asm-technical carrier. Of course the loaded ordInfo file could carry out the AI agent's orders between turns without having the crash-source stored in the ordInfo of the saved game. Since ordInfo is also used for human players, and they cannot preset subsequent orders in destination sector, I should have considered this even without knowing about the file itself. At least I edited my post with the map AI data link to help analysing AI agents.

The delay of the trade route saved game crash was always strange, unless it's triggered by opening or clicking on parts of the GUI?
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm Respect! Looks like great progress! Sadly I can't keep up to study most AFC post in detail or even just to read them.
Thx, I went into analysing this when I encountered some issues removing ai ships.
I am sure the ordInfo and result.lst analysis help to bring more light to the ai workings if you ever take another look.
Clearing task force orders and removing ships I got to work by now. :D
Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm - sub_448970 overwrites [GTForceList or GWTForce+30h] (you say sector index ID?) when ordering task forces with TTs to attack systems, so it should use the same location for both functions
The target sector index indeed is set for any task force movement. So checking GWTForce or GSchipList you can already see where the task force is moving to. Different from UE I think it is also being read to display the movement path for player task forces.
I figured this while I actually was analysing the ordInfo file and checked on matching values.
Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm - Of course we can refer to bit tables as flags and not masks from now on and you guys may use admin powers to change my older posts if you want to
Ah well, we already deviate with other namings. While coding however I always try to find proper self descriptive names and hate to always type some name I find improper just to keep consistency.
Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm And sorry if I caused any inconvenience with mentioning the ordInfo as source of the training crash.
It's rather been the included sector and task force references that got me to analyse this data. And I first went to analyse result.lst till I noticed it contained same ordInfo structures. Further I didn't take a look into crew training yet, but I am confident that'll be no issue now with the other fixes. :D
Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm It's the asm-technical carrier. Of course the loaded ordInfo file could carry out the AI agent's orders between turns without having the crash-source stored in the ordInfo of the saved game.
Therefore I analysed some more on AIShpUnt and other agent files as well. But that was not as much trouble I feared.
AgtSh lists the ship ids to manage, and by AIShpUnt (possibly an abbreviation for ship undertake) the ai assigns an AITask, which can be simply cleared by setting the next task reference to -1. AITask in turn tells on the command and target sector, and includes alot of sub routine and memory offset references that is no relevant sav data.

Further there are the TskSh files that are numbered by the AITask id and tell on what agent ships are assigned to what task, just like it is stored with the AIShpUnt files. It is just AIShpUnt links Ship -> AITask, while TskSH links AITask -> Ship.
Clear both and the ai will assign a new task the next turn.
Spocks-cuddly-tribble wrote: Sat May 22, 2021 12:17 pm The delay of the trade route saved game crash was always strange, unless it's triggered by opening or clicking on parts of the GUI?
I am currently not sure on this error but it might already be fixed.
The trade routes themselves just point to the system id. But it might be that for establishing the trade routes the old sector location is looked up. Only testing can tell.

---

While testing btw I now found evidence that at least the techInfo file needs to have the LZSS dictionary filled with 0 to not mess it up.
I guess there are more of such files. Possibly all binary files have the dict filled with 0, while textual files have it filles with 0x20 space characters.
I figured this again encountering a missing tech entry when I re-opened a file with UE that I first modified with UE, and then loaded and stored with BotF.

When the dictionary is read from a pre-filled location, the game then read 0x00 for the id where actually it was 0x20, and in other locations in UE it afterwards read 0x20 where actually trek.exe meant to refer a pre-filled 0. Guess I will have to try each of the files to figure them all.
User avatar
Flocke
BORG Trouble Maker
BORG Trouble Maker
Posts: 3197
Joined: Sun Apr 27, 2008 2:00 am
Location: Hamburg, Germany
Contact:

Re: UE Map Editor

Post by Flocke »

Flocke wrote: Sat May 22, 2021 3:22 pmWhile testing btw I now found evidence that at least the techInfo file needs to have the LZSS dictionary filled with 0 to not mess it up.
I tested all of the files now and the results are inconclusive.
From testing, techInfo is the only file that must be 00 defaulted to not loose the 0x20 tech entry index, but many others could be 00 defaulted without error and no file corruption I found.

Alot of files I assumed binary actually must be 0x20 defaulted. The game crashes on load if 00'ed for:
  • Agt* files
  • alienInfo
  • empsInfo
  • gameInfo <- this one actually loaded, but the ai took over and it crashed next turn :lol:
  • GTForceList
  • GWTForce
  • ordInfo
  • provInfo* files
  • result.lst
  • sector.lst
  • starBaseInfo
  • strcInfo
  • systInfo
  • trdeInfo* files
No difference I found for:
  • AI* files
  • alienTFInfo* files
  • galInfo
  • GShipHead
  • GShipList
  • GTForceHd
  • GTFStasis
  • GTFStasisHd
  • GWTForceHd
  • intelInfo
  • monster.lst
  • RToSInfo
  • SeedInfo
  • ShipCntr
  • shipname.dat
  • SphOfIn* files
  • stellInfo
  • TForceCntr
  • treaty
  • Tsk* files
  • version
I can't figure a clear pattern what files need to be 00'ed or filled by space characters.
Therefore I decided to check on the asm code whether I could find anything, but it's hard to decrypt what's going on there and I found no clue on it either. I can't even tell what routine is responsible for the LZSS decryption and what is the LZSS dictionary.

With these inconsistent results and given the larger sav file sizes, I now believe trek.exe never used that feature.
I never found it being used by any of my LZSS sav file decryption analysis, and it is the only explanation UE doesn't care with what value a trek.exe stored sav is decrypted.

Therefore I overworked the compression algorithm to disable that feature, and voila, trek.exe now doesn't care anymore either with what value the dictionary is filled. It might even be the trek.exe decryption leaves the dictionary uninitialized. Given one would have to debug the trek.exe sav decryption to ever tell for sure, the safest really is to not depend on it but just allow for value references to already written data.

It didnt even have a noticable effect on the file size.

----

While checking on the asm code, I btw found that the race based ordInfo id offsets is set in:
sub_456A70
AUTO:00456A79 mov edx, 1
AUTO:00456A7E mov ecx, 2AAAAAAAh
AUTO:00456A83 mov ebx, 55555555h
AUTO:00456A88 mov esi, 7FFFFFFFh
AUTO:00456A8D mov edi, 0AAAAAAAAh
AUTO:00456A92 push offset aOrdinfo ; "ordInfo"
AUTO:00456A97 mov ebp, 0D5555552h

----

And on another note, testing the removal of task forces, I noticed that it indeed speeds ai turn processing time alot!
Adding and removing task forces or altering orders therefore could help further analysing this.
Post Reply

Return to “Ultimate Editor”