shiplist.sst info needed

General Modding Information/Questions; support/discussion/questions

Moderator: thunderchero

Forum rules
:idea: Please search before starting new topic. :idea:
There is a good chance it has already been asked.
Post Reply
User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 6430
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.
Contact:

shiplist.sst info needed

Post by thunderchero » Fri Jun 14, 2013 5:38 pm

Hi Everyone,

I was looking at the shiplist.sst and noticed some areas are not list/explained. So I created a new table with all the info I could find.

I hope to find/get some help with the unknown lines in image below.

I know some of the hex type is not exactly described correctly (1 byte unsigned ect) I just used term from UE.

old image https://www.armadafleetcommand.com/lib/b ... iplist.png
Image


thunderchero

Dr_Breen
Commodore
Commodore
Posts: 889
Joined: Wed Apr 30, 2008 2:00 am
Location: Zurich, Switzerland
Contact:

Re: shiplist.sst info needed

Post by Dr_Breen » Thu Jul 18, 2013 4:08 pm

offset 0xc8:
Did you notice that the Galaxy II (command cruiser II) is the only ship that has a 01 in the first byte (followed by 11 bytes with 00). all the other ships have 12 bytes filled with 00. perhaps they planed something there but never used it. or is there anything special about the Galaxy II?
Public BotF / EF2 Teamspeak 3 Server: 83.169.13.55

User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 6430
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.
Contact:

Re: shiplist.sst info needed

Post by thunderchero » Thu Jul 18, 2013 4:56 pm

Dr_Breen wrote: or is there anything special about the Galaxy II?
yup there is
Spocks-cuddly-tribble wrote:-GalaxyII 640points beam bug (DCER)

shiplist.sst - relative offsets of GalaxyII (replace the following values with zeros):

+0xB4 (01), +0xB8 (96), +0xBC (08 ), +0xC0 (50), +0xC4 (0C), +0xC8 (01)
and at +0x101-103 (E0 75 40)
just +0xC8 (01) was never explained.

thunderchero

User avatar
Raider Echo3
Cadet 3rd Year
Cadet 3rd Year
Posts: 14
Joined: Wed May 27, 2015 11:58 am

Re: shiplist.sst info needed

Post by Raider Echo3 » Wed Jun 03, 2015 12:46 am

Since the min plasma range is missing maybe +0xC8 is min range for plasma weapon? ;)

User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 845
Joined: Sun Apr 27, 2008 2:00 am

Re: shiplist.sst info needed

Post by Spocks-cuddly-tribble » Fri Dec 13, 2019 4:01 pm

thunderchero wrote:
Fri Jun 14, 2013 5:38 pm
I hope to find/get some help with the unknown lines in image below.
Better late than never.... :wink:


Shiplist.sst [+9Ch](dword) gets tested for AI Colony & TT ships to set combat ability bit for AI taskforces i.e. unlock 'Engage' (sub_42B988).


Sub_479D10 reads shiplist.sst [+9Ch] and [+A0h] for some funny AI combat calculations. See also 'Combat.bin bug': viewtopic.php?f=272&t=566#p19075


Compare unkonwn shiplist.sst values i.e. sort ships first by value from sub_4797C0 and subordinate by:

([+9Ch] * 100 / 15868) + 10 * crew experience level

([+A0h] * 100 / 5862) + 10 * crew experience level


And of course the code has a bug...


Sorting / Selection of AI Ships (Task Forces) Crew Experience Bug-Fix

Code: Select all

0x791CF change 01 C2 89 94 -> 8B F8 01 84

0x7921A change 08 -> 38

00479DCF   8BF8              MOV EDI, EAX             // store 10 * crew experience level ship 1
00479DD1   018424 40020000   ADD [ESP+240], EAX

00479E18   8D1C38            LEA EBX, [EAX+EDI]       // use for ship 1 [+A0h]
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.

User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 845
Joined: Sun Apr 27, 2008 2:00 am

shiplist.sst Beam Minimum 'Range?' Firing Arc in Degrees & Trek.exe Phaser Slots

Post by Spocks-cuddly-tribble » Sun May 31, 2020 4:17 pm

Gowron wrote:During combat, a ship is designated as "unarmed" if its minimum beam range is equal to zero.
viewtopic.php?f=208&t=79#p596

Apart from this are we sure the 'beam minimum range?' at shiplist.sst +0xDC is actually used?

Same question arises for shield penetration (only on paper in tevent.txt), agility (overridden by combat group?), torpedo min range...


The 'minimum range?' for beam-weapons of space stations is not read from shiplist.sst but fixed in trek.exe (default -1):

Code: Select all

005224B5                 mov     dword ptr [eax+210h], 0
005224BF                 mov     dword ptr [eax+214h], 0BFF00000h
Since -1 is cosine of pi (fcos function interprets values as radians) this would be 360.0 degree in shiplist.sst.


'Minimum range?' for beam-weapons of ships & monsters from shiplist.sst gets coverted into radians via *pi/360 (stations & 'plasma?' not):

Code: Select all

584CEC BeamMinRange_x_0_5     // * 0.5 = /2
584CF4 BeamMinRange_x_pi      // * pi
584CFC BeamMinRange_x_0_005p  // * 5/900 = /180
Unlike stations the fcos function is applied before storing.


'Minimum range?' for 'plasma?'-weapons of ships in trek.exe at:

Code: Select all

584D04 PlasmaMinRange_0_3926990816987238 // radian for fcos function equals 45.0 degree in shiplist.sst
Note that all shiplist.sst values mistakenly referred to with 'plasma'(they are not connected with plasma.hob files) are only used for ships (not stations & monster).

Phaser/plasma switch is in the trek.exe ship slot at +0x10 (0 = use phaser / 1 = use plasma). The info here is false: viewtopic.php?f=150&t=3321#p44235


1. Shiplist.sst +0xDC is an angular degree, converted into radians for fcos function (e.g. degrees/cos = 0/1 180/0 360/-1).
2. The calculated cosine values don't seem to be used but instead values depending on trek.exe phaser-slots.


Trek.exe Phaser Slot values


Sub_52C548 assigns each slot four values depending on set bits:

for C0 (Turret?) set values 1-4 to 1 / 0 / 0 / -1 (360 degree) and exit

for all other calculate values 1-3 using radians A & B:

(remove bits 7-8)

only bit 5 set radian A = 0 & radian B = 0.5pi
only bit 6 set radian A = 0 & radian B = -0.5pi

else (remove bits 5-8) and set radian A for:

0h = not set
1h = 0
2h = pi
3h = not set
4h = 1.5pi
5h = 1.75pi
6h = 1.25pi
7h = not set
8h = 0.5pi
9h = 0.25pi
Ah = 0.75pi
B-F= not set

then check bits 5 & 6 for radian B:

0 or both -- radian B = 0
only bit 5 - radian B = 0.25pi
only bit 6 - radian B = -0.25pi

Calculate values 1-3:

1 = cosine radian A * cosine radian B
2 = sine radian A * cosine radian B
3 = sine radian B

then check bits 7 & 8 for value 4 (firing arc):

0 or both set 0.5 = 120 degree (Beam/Emitter Banks?)
only bit 7 set 0.866 = 60 degree (Dual & Heavy Cannons?)
only bit 8 set 0 = 180 degree (Beam/Emitter Array?)


Have the phaser slots in hob.files a direction value (e.g. rear/aft-mounted or up/down) or is the direction set by radians A & B?

Bits 1-8 (read from right to left): http://www.dewassoc.com/support/msdos/d ... ecimal.htm

Code: Select all

1 - forward
2 - rear
3 - left
4 - right
5 - up
6 - down
7 - narrow firing arc
8 - wide firing arc

In theory one could use different firing arcs for Heavy Cannons, Beam Banks, Arrays or Turrets on the same ship.

Unfortunately the game development stopped before different weapon types, strengths and animations could get assigned to specific weapon slots of the ship model.

- no torpedo and/or unkown ship hob slots
- phaser & plasma hob are mutually exclusive and share same ship hob & trek.exe slots
- the second energy weapon (galaxy class 2 default) has no ingame display for stats, issues when paired with main phasers and shares the phaser/plasma setting
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.

Post Reply

Return to “General Modding Information/Questions”

Who is online

Users browsing this forum: No registered users