Notifications
Clear all

ffed3d hacks

Page 2 / 2

Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

camera point, i guessed "radius", if you alternate this you change cameras max. zoom, but i'm not shure if it's the only purpose of this value. also there are various size multiplicators, where one is known as size represented in ships equipment, but the others are not well known.

but the pic is strange what exactly shows it?

looks like a extreeeemly oversized dustball (the ones you can find under your bed, usually), or the waste asteroid from futurama 😆

no it's areplacement model, i see, 109 space dust. a single ball or some loose arranged small objects? i made a model from the output and put it under adding of a animation set (you have to) into the folder, without a significant change (of course), in fact i think i didn't saw anything.

but i didn't followed that idea further and thought about a editing of the original model (seems to be tricky), because it would be process time saving i'm shure and make no big difference to the higher detailed ffed3d.

i have to state here, i never expected to have such a big echo with this thread.

bender4.jpg


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

hidden post of a cool avatar for free

angrycat_thumb.gif firedragon_thumb.gif pilzli2.gif pilzli4.gif t-bird_thumb.gif virgin_thumb.gif fry1_1.gif pesanteur_pascalineWeb.jpg prof2.jpg skelett_streched.jpg

i know it's off topic somewhat but, just to amuse you (and myself).


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

i hope you're not to impatient, but actually i'm working outside (it's cold) and i'm physically way to exhausted to concentrate on the thread 😆


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

i should have found that earlier; First Encounters save game editor.

it allows you to decrypt ffe's savegames (commandr files), i found that hidden on jongware.

i hope Lloyd and John aren't disappointed with the spreading of their work 😉

i've uploadet it here 🙂

it comes with ffe objects.doc for a easy access to the data in the decrypted files 😀


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

for a easy access (edit) of ffe object.doc:

Quote:
Credits

This file has been made by the use of the readme.txt file from fesge

“first encounters save game editor”, written by Lloyd Williams.

http://binaryfrog.lostmypants.net/ffe/

as well as plstate.txt and gmstruct.txt from jjffe source, by John Jordan.

http://jaj22.org.uk/jjffe/

ignited by Theunis de Jong.

http://www.jongware.com/index.html

additional research gernot schrader (potsmoke66).


BLOCK 0 list of actual systems objects


Hint:

To find ship data, search ship name (reg. no.), go back 0x124 bytes to find 0x00 of chosen ship (object). mark chosen object from 0x00 to 0x151 in hexeditor and copy paste it to a new file, this will help find the right offset, compare with original file and edit (note offset). if you encounter a lot instances of your ships id (old data), search for your actual player object index# in block3 at 0x00C0 then compare with object list in block0 or use buffet to change the reg. (ship name) in the actual save.

0x82 dword object model index nr. ("physical" model #, like; 30=viper)

0x86 byte object index (# in list of systems objects for player player object index#)

0x87 byte object control - 0x1 orbital, 0x3 player ship, 0xb AI ship

0xB0 word pitch rate (x rotation)

0xB2 word roll rate (z rotation)

0xB4 word yaw rate (y rotation)

0xB6 word x accel rate

0xB8 word y accel rate

0xBA word z accel rate

0xBC word main thruster accel

0xBE word retro thruster accel

0xC0 word top thruster accel

0xC2 word bottom thruster accel

0xC4 word right thruster accel

0xC6 word left thruster accel

0xC8 dword equipment flags

0xCC dword damaged equipment flags

flags:

0x1 laser cooling booster

0x2 auto-refueller

0x4 military camera

0x8 escape capsule

0x10 ?energy bomb?

0x20 navigation computer

0x40 combat computer

0x80 autotargeter

0x100

0x200 missile viewer

0x400 cargo scoop

0x800 chaff dispensor

0x10000

0x20000 cargo bay life support

0x40000 scanner

0x80000 ecm

0x100000 fuel scoop

0x200000 autopilot

0x400000 radar mapper

0x800000 naval ecm

0x1000000 HS cloud analyser

0x2000000

0x4000000 energy bomb

0x8000000 stowmaster

0x10000000 energy booster

0x20000000

0x40000000 atmos. shield

0x80000000 hull auto-repair system

0xD0 byte drive type

types:

0x00 none

0x01 Interplanetary

0x02 class 1

0x03 class 2

0x04 class 3

0x05 class 4

0x06 class 5

0x07 class 6

0x08 class 7

0x09 class 8

0x0A military class 1

0x0B military class 2

0x0C military class 3

0x0D military class 4

0x0E ?

0x0F ?

0xD1 byte number of gun mountings

0xD2 byte front laser

0xD3 byte rear laser

0xD4 byte top turret laser

0xD5 byte bottom turret laser

Laser types:

type 0,

08-0F = 1MW Pulse Laser

10-17 = 5MW Pulse Laser

18-1F = 30MW Mining Laser

20-27 = 1MW Beam Laser

28-2F = 4MW Beam Laser

30-37 = 20MW Beam Laser

38-3F = 100MW Beam Laser

40-47 = Small Plasma Accelerator

48-4F = Large Plasma Accelerator

50-57 = E1

58-5F = E2

60-67 =

68-6F =

70-77 =

78-7F =

80-87 =

type 1,

88-8F = 1MW P visibility 8 steps small to xxl

90-97 = 5MW 5MW Pulse Laser

98-9F = 30 MW Mining Laser

A0-A7 = 1 MW Beam Laser

A8-AF = 4 MW Beam Laser

B0-B7 = 20 MW Beam Laser

B8-BF = 100 MW Beam Laser

C0-C7 = S P A

C8-CF = L P A

D0-D7 = E1

D8-DF = E2

E0-E7 =

E8-EF =

F0-F7 =

F8-FF =

0xD6 byte missile 1

0xD7 byte missile 2

0xD8 byte missile 3

0xD9 byte missile 4

0xDA byte missile 5

0xDB byte missile 6

0xE0 word total shields

0xE2 word current shields

0xE4 word mass*4, used for damage

Alternative 0xf2? Acceleration cap for large timesteps

0xF2 dword destination?, zeroed on autopilot target reached

0xF6 dword set to zero by HS exit

0xFA dword set to zero by HS exit

AI HS version:

0xF2 dword destination system code

0xF6 word max jump range

0xF8 byte post-HS AI mode

0xF9 byte filler?

0xFA dword jump time (tics >> 0x10)

0xFF value

values:

0x0 Basic navigation mode

0x1 Attacking - turning towards

0x2 Attacking - firing

0x3 Attacking - turning away

0x4 Pirate interception

0x5 Transitional state to 0x4

0x6 Static?

0x7 travel to HS entry point

0x8 HS exit routine

0x9 Bounty hunter interception

0xA Patrol?

0xB Formation navigation

0xC Missile evasion?

0xD Auxiliary ships around station

0xE

0xF

0x10

0x11 Delayed HS exit cloud

0x12 HS exit cloud

0x13 Missile

0x14 Mine

0x15 Smoking cargo

0x16 Normal cargo - abandoned ship?

0x17 Static cargo

0x18 Dies at small distance from player

0x19 Asteroid

0x1A ?

0x1B Space dust

0x1C

0x1D HS entrance cloud

0x1E HS cloud remnant

0x1F Request launch

0x20 Docked/landed - waiting for traffic control timeout

0x21 Launching

0x23 Docking/landing

0x24 Docked/landed

0x116 word remaining internal capacity, AI only

0x118 byte value

values: Stores ship table index for non-pirate?

0x1 ship after esc. capsule

0xFA cargo

0xFB pirate

0xFD missile

0xFE HS cloud

0xFF player

0x119 byte cargo fuel in tons - AI only

0x11A dword bounty

0x11E dword fuel tank (0x20000000 = 1t)

0x124 string object name/ID

0x151 byte laser flags

flags:

0x1 shields hit

0x2 laser fired

0x4 front laser

0x8 rear laser

0x10 turret laser

0x20 ecm activated

0x40 energy bomb activated


BLOCK 3 player data


offset of data as in the file (copy paste to new for easy access)

0x0000-04 game ticks

0x0004-08 game days 1.1.3250 = (3250 * 1461) / 4 = 0x121CF6 (0xF61C12)

0x00C0 player object index (use this to find your actual ship data in block0)

0x00C8 player object ptr

0x0112 last messaging object index

0x0114 player cash

0x0118 cargo space total (after equipment)

0x011C cabins total (possible error)

0x0120 cargo space used?

0x0124 cabins used?

0x0134 cargo water

0x0136 cargo oxygene

0x0138 cargo grain

0x013A cargo fruits & veg.

0x013C cargo animal meat

0x013E cargo synth. meat

0x0140 cargo liquor

0x0142 cargo narcotics

0x0144 cargo medicines

0x0146 cargo fertilizer

0x0148 cargo anim. skins

0x014A cargo live animals

0x014C cargo slaves

0x014E cargo lux. goods

0x0150 cargo heavy plastics

0x0152 cargo metal alloys

0x0154 cargo prec. metals

0x0156 cargo gem stones

0x0158 cargo minerals

0x015A cargo hydrogen fuel

0x015C cargo military fuel

0x015E cargo hand weapons

0x0160 cargo battle weapons

0x0162 cargo nerve gas

0x0164 cargo ind. parts

0x0166 cargo computers

0x0168 cargo air proc.

0x016A cargo farm mach.

0x016B cargo robots

0x016C cargo alien artefacts ?

0x016E cargo – radioactives

0x0170 cargo – rubbish

0x0172 cargo ?

0x0174 cargo – chaff

0x0176 cargo ?

0x0176 cargo ?

0x0178 cargo ?

0x017A cargo ?

0x017C cargo ?

0x017E cargo ?

0x0180 amount fuel used for jump

0x019C ELITE rank

0x01A0 Fed military rank

0x01A4 Imp navy rank

0x01B8 set speed

0x01BC copy of commander name?

0x01D2 copy of commander name?

0x01F4 equipment failure timeout in 30hr units

0x01F8 drive failure timeout in 30hr units

0x01FC last drive maintenance

0x0200 last equip maintenance

0x023D crosseye (selection) x

0x0240 crosseye y

0x0244 crosseye z (zoom)

0x0248 ?

0x0250 actual system x

0x0254 actual system y

0x0258 actual system z

0x025C target system x

0x0260 target system y

0x0264 target system z

description:

To find the system coordinates, as displayed during the game,

use the following formulas

X = ((absolute_X - 0x171880) * 0x64 / 0x100) / dec. 100

Y = ((absolute_Y - 0x152480) * 0x64 / 0x100) / dec. 100

If the value of system is higher than 0x171880 or 0x152480,

else you have to change positions and negativate the result.

i.e. for 61 Cygni:

X = (0x171880 - 0x171796) * 0x64 / 0x100 = 0x5B or dec. 91 = -0.91

Y = (0x1525AE – 0x152480) * 0x64 / 0x100 = 0x75 or dec. 117 = 1.17

internally sector 0x000000,0x000000 is at x -591200, y -541200

in fact there is a maximum of 0xFFFF(+0x1 because 0x0 is a value) (dec.65536) sectors.

each sector starts at 0x00,0x00 in the lower left corner of the square,centre is at 0x80, 0x80 and top right corner at 0xFF, 0xFF.

to tell in other words, each sector has a dimension of 256 * 256.

one sector is 8.00 light-years in dimension, lets say one light-year is 100 "clicks" or what ever you like to call them.

then calculate dec.

(sector_X,sector_Y * 800) / 256 = "clicks" from the bottom or left corner of the square.

i.e. for sol:

X = (128 * 800) / 256 = 400 "clicks" = 4.00 ly (from left side of sector)

Y = (160 * 800) / 256 = 500 "clicks" = 5.00 ly (from bottom of sector)

you may wonder why I use "clicks" and don't use simply 3.125 as divisor, try and you will see that there is a slight difference.

to get decimal value, calculate for

Z- ((0x10000 - 0xZ * 0x64) / 0x10000) / 1000 = Z- distance to 0 dec.

Z+ ((0xZ * 0x64) / 0x10000) / 1000 = Z+ distance to 0 dec.

to get the value in "clicks" or light-years calculate

Z- ((0xFFFF - 0xZ) * 0x320) / FFFF = Z- distance to 0 in "clicks" / 100 = ly

Z+ (0xZ * 0x320) / FFFF = Z+ distance to 0 in "clicks" / 100 = ly

Maximum Z distance is again 800 (0x320) "clicks".

[attachment=94:grph1.jpg]

With the right tool at hand, now you can move yourself to any place in the galaxy, but the ship stays where it is.

Feed the results to a RAM editor or "game genie" to move instantly while playing.

Search for sol: X 0x171880, Y 0x1524A0, Z- 0xFFFF9400

Search for tau ceti: X 0x1718D2, Y 0x1524E8, Z+ 0x0000FC01

0x026C range to target system, “clicks” / 100 = ly’s.

0x0294 fuel required

0x03FA names 0x2, orbits 0x4 ???

0x057A offset of object index in byte

0x3CAE maximum military missions

0x3CB2 major rank

0x3CB6 minor rank

0x3CBA 25 24-byte military mission structs

structure:?

0x3ECB

0x3F2A Used for missing person ad

0x3F2E Used for missing person ad

0x3F32 Used for missing person ad

0x3F36 Used for missing person ad

0x3F3A

0x402A base of ServEntry structures

0x48D2 timeout?

0x48D6 first ServEntry displayed

0x48DA number of ServEntries (max 0x2d)

0x48DE current services screen name ffcode

0x48E2

0x48E3

0x48E4

0x48E8 current services screen index

0x48F8 current station pointer

0x48FC agreed payment flags

0x4900 agreed mission payment

0x4904

0x491C services blitback timeout

0x4A18 number in parcel/pass. roster

0x4A3A base of parcel/pass. roster

0x4EF0 number in mission roster

0x4EF4 base of mission roster

0x502C correct number of crew

0x5030 current number of crew

0x5032 first crew member, 20 up to 0x50AE (pure guessing!)

0x50D4 last correct

0x50F8 alliance fine

0x50FC fed fine

0x5100 imp fine, interpol, thargoid...

0x5118 num asteroids

0x5119 max asteroids

0x511A MB4 count...

0x511E MB4 count?

0x5122 Base of MB4 list?

0x532C Hyperspace time

0x5330 Hyperspace distance

0x5334 current song index

0x5538 savegame name

0x554C ._ of savegame ext

0x554E second-last char in savegame ext

0x554F last char in savegame ext

0x5552 copy of commander name

disclaimer:

some explanations are pure "guessing" by me

all offsets and data with no warranty.

i didn't used all known offsets here, because some are irrelvant for the common use of editing ship specs with fesge.

for further offsets (explanations) refer to john jordans jjffe source or find some by yourself to help us (me). 🙄

Frontier First Encounters by Frontier dev. http://www.frontier.co.uk/

I hope Lloyd Williams and John Jordan feels not disappointed with the spreading of their work, else all the blame goes to me.

Gernot Schrader

Kaltbrunn 03/23/2010

last edit 03/24/2010


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

for those who dare to fumble around with a game genie

or hex edit their savegames

a (ffe suitable) character set of the fe2 line font (use it to spice up your ships name):

times font is used for starports, pubsigns and big ships in ffe

Code:
01 "return"
20 "space"
21 string; color blue
22 string; color l.grey
23 radioactive symbol, recycle symbol in times font
25 + , saturn symbol in times font
26 broad yellow /
27 '
28 (
29 )
2A sirius corp. symbol, * in times font
2B knights cross (in hoc signo vinces), + in times font
2C ,
2D -
2E .
2F /
30 0
.
.
.
39 9
3A :
40 konami symbol, © otherwise
41 A
.
.
.
5A Z
5C -
5F "space"
61 a
.
.
.
7A z
7C 3 or & ?
93 a green ball array
B0 one line up
BB some cone
C1 halts game outputs "reboot required"
C7 shows a string
CE orbit ring
D1 shows "game over commander" cross
D2 2 endless lines
D6 strange symbol
DB text changes y/z axis, chatter sound (DB 😉 )
DF blanks text or color m.grey
E0 2 ball arrays
E3 "fföt" and a line
E4 a thin line
E5 green ball array
F0 a string and flickering triangles
F7 a thin line
FC grey ball array and lot of weird graphics
FD one line down
FE one line down

other values than this will either crash the game or produce nothing of interest (so far). 😉


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

here's the bitmap font character distribution, useful to create a suitable font for ffed3d

Code:

00 blanks string
01 string turns black with gray shadow
0D one line down (return)
20 "space"
21 !
22 "
23 #
24 ¢
25 %
26 ö
27 '
28 [
29 ]
2A *
2B +
2C ,
2D -
2E .
2F /
30 0
.
.
.
39 9
3A :
3B ;
3C ñ
3D =
3E é
3F ?
40 ©
41 A
.
.
.
5A Z
5B ü
5C \
5D ß
5E °
5F _
60 ä
61 a
.
.
.
7A z
7B h²
7C s²
7D arrow nw
7E arrow ne
7F arrow sw
80 arrow se
81 â–¡ (box)
82 ç
83 è
84 ù
85 î
86 â
87 ô
88 ê
89 ú
8A à
8B ò
8C ¿
8D A (hex)
.
.
.
92 F (hex)
94 unknown symbol
95 unknown symbol
96 unknown symbol
97 ▌█
.
.
.
9F ▌█
FF "t"

soon wrong characters will be past 😎


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

just to make you curious

[attachment=95:cobramk1_s1.jpg]

[attachment=97:cobramk1_s2.jpg]


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

added some texture replacements in the download section

including, a new "Times" font (Lynx), blue explosions (check out!), and all textures as shown in Frontierimages as .png files for you to use as reference or to flush it dd. 😀

th_blue-explosion.gif

to get the Frontier Dev. Symbol on your ship, you need to hack the .exe (sorry), take jongwares frontiermeshes as guide search for the text command and replace the 06 for line font (size6) with 26 (Times font, size6).

use the % (25h) symbol for the "Frontier Dev. Saturn" in your ships name, use buffet type in "FR%NTIER" i.e..

here a example cobra mkI model from ffe split in showmesh.txt "format" for your better understanding and how to find relevant data in FFED3D:

Code:
cobra mk1
---------

offset in FFE 0x08D46A - 0x08D824
offset in FFED3D 0x106ECA - 0x107283

0001 0203 0405 0607 0809 0A0B 0C0D 0E0F -

block 1; commands

0x00: 5402 8F10 1302 8F00 7DC1 8F44 5DC1 C104
0x10: BDC1 C145 1301 C100 0900 EE20 1E24 BC02
0x20: 0900 EE20 1F25 BC02 1302 8F10 1DC1 408F
0x30: 5DC1 C104 BDC1 C145 1301 C100 0900 EE20
0x40: 262C 9001 0900 EE20 272D 9001 9401 8D10
0x50: 5301 8D00 5DC1 8D04 BDC1 C145 9300 C100
0x60: 0900 EE20 2F35 9001 9301 8D10 1DC1 408D
0x70: 5DC1 C104 BDC1 C145 9300 C100 0900 EE20
0x80: 2E34 9001 9401 8E10 5301 8E00 5DC1 8E04
0x90: BDC1 C145 9300 C100 0900 EE20 363C 9001
0xA0: 9301 8E10 1DC1 408E 5DC1 C104 BDC1 C145
0xB0: 9300 C100 0900 EE20 3E44 5802 1A00 0F40
0xC0: 0082 1140 0940 0D40 0140 0340 1340 2340
0xD0: 0DC2 8340 6B04 E602 D509 5301 8100 1C04
0xE0: 0400 7B17 4A06 0010 0340 6E17 4C06 6E17
0xF0: 4D06 6B02 0E80 9300 9D10 4DC1 9D08 6E00
0x0100: 1C00 9300 9D08 4DC1 9D40 6E00 1D00 B300
0x0110: 9705 E6FF 1C00 7C00 6E18 1A06 15F0 E6FF
0x0120: 0400 0340 0A05 040B 0200 0700 EE20 0E0C
0x0130: 0210 0300 0340 0100 0402 0300 0340 0504
0x0140: 0602 0800 0440 0206 0004 0800 0700 0340
0x0150: 0604 0A08 4B02 8601 1C19 0000 3C83 5405
0x0160: 0A00 8808 0A06 4646 1630 1C19 4000 3C83 ;0x0165 = 06 is font style and size, 0 = line font 1-F, 1 = bitmap font (no use), 2 = Times font 1-F for the rightside label
0x0170: 5405 0A00 8808 0B06 4846 1630 0700 0440 ;0x0177 = 06 is font style and size, 0 = line font 1-F, 1 = bitmap font (no use), 2 = Times font 1-F for the leftside label
0x0180: 0804 0C0A 0400 0340 0A01 000B 0E00 0700 ;key for first label, 0A00 = TEXT, 8808 = COLOR gb0r (no influence to times), 0A = NORMALS from table (#10), 06 = FONT style, 46?, 46 = vertex (#70), 1630?
0x0190: 0440 0600 100A 0700 0340 0806 120A D300
0x01A0: 9704 8B00 0880 9B18 1640 00F0 4404 D300
0x01B0: 9708 8B00 0980 BB18 1740 00F0 4404 5301
0x01C0: 9703 0B01 0680 5DC3 8009 3C10 C300 DB18
0x01D0: 1806 00F0 4404 0600 1302 8110 D301 8006
0x01E0: 9301 8005 9300 8004 0100 E020 0258 8006
0x01F0: 9400 8004 0100 002E 0258 8007 0000

block 2; extra data

B80B
0x0200: 8813 B80B 78EC

unknown data1

A080 178D 00C3 001A 1080
0x0210: 0204 0608 090A 0B0C 0D0E 1011 1213 0000

block 3; vertex

0x0220: 0100 0700 1700 0100 0007 0000 0100 1307
0x0230: ED00 0100 1F00 0700 0100 1F00 F100 0100
0x0240: 0FF9 ED00 0100 0A03 ED00 0100 0203 ED00
0x0250: 0100 09FE ED00 0B00 0104 0500 0B00 0100
0x0260: 0100 0B00 0100 0400 0B00 0102 1200 0100
0x0270: 00FB F900 0100 07FC 0300 0100 0700 E800
0x0280: 0100 0700 8F00 0700 1500 2000 1300 C11E
0x0290: 2200 0100 0C00 1700 0100 0C00 3200 0700
0x02A0: 1600 2800 1300 C126 2A00 0100 2300 F700
0x02B0: 0100 4600 F700 0700 1600 3000 1300 C12E
0x02C0: 3200 0100 00F7 0000 0100 00C9 0000 0700
0x02D0: 1500 3800 1300 C136 3A00 0100 000F 0000
0x02E0: 0100 003A 0000 0700 1600 4000 1300 C13E
0x02F0: 4200 0100 1C01 F000 0100 E401 0000 0100
0x0300: 0000 1500 0100 09FB F600 0100 00F9 0100

block 4; normals

0x0310: 0400 0000 8100 0000 0079 2400 0400 007E
0x0320: 0500 0000 1779 1C00 0400 4669 0000 0400
0x0330: 22F8 8700 0A00 0084 1600 0000 1085 1900
0x0340: 0600 388F 0000

block 5; specifications (part1)

1022 3AF3 0201 4B00 3C00
0x0350: 6100 6400 2140 0100 0200 030C 0001 EE02
0x0360: FA00 E204 EE02 DC05 0000 B004 FA00 CC00
0x0370: 1E00 0009 AE00

unknown data

6A34 4A00 8A36 4A00 5000
0x0380: 0000 7A37 4A00 1400 0000

block 5; scale to collision data

0900 0000 0000
0x0390: 0000 7100 0000 1400 0000 0606 0600 0B00
0x03A0: 0000 3043 0000 100E 0000 7036 4A00

unknown data

B037
0x03B0: 4A00 0000 0000 0000 0000

keep in mind that theunis stated the wrong axis order
in frontiermesh.txt, data is reflected correct.
order is: 1 - type, 2 - Z axis, 3 - Y axis, 4 - X axis,
where Z is depth like for a car model (from Front).

2010/04/07 P66

cobra mkI code as .txt file

showmesh.txt

hint: mark and copy-paste the model you want to edit to a new file in your hex editor, write down start & end offset.

it makes it a lot easier to find the data in the model, afterwards you can paste it back to the marked offset range.

also it will give a good reference for exchange in web.

it will look like this ffed3d_cobra.bin or this cobra mk1 modified labels.bin.

add a little txt file where you explain your edits like this cobra mk1 modified labels.txt

use this test model.x for best results (model is unfinished).

there is a slight difference between FFE & FFED3D in the last 2 "unknown" datablocks, anyone's got a idea?

i would apreciate it much.


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

project:

setup a folder including all models by # and name (if known), each model folder (# - name) contains "# - name.bin", from FFED3D, "# - name.txt", from meshview.txt, "# - name offset.txt", offset(s) in FFED3D and explanations, as well as shortcuts to the apropriate sub models. so that you will be able to easy check the models and all submodels used by them.

maybe i put it afterwards all into a html file so it will be easy to explore, but it's still in progress.


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

i discovered that the commands for the submodels only get read proper if the previous one is activated, no submodels without missiles, no Naval ECM without ECM, no Labels without fuel scoop. strange but true, any ideas ❓

and forget what i wrote about you have to buy a new ship to activate the Labels fontstyle, it's wrong, only submodel use counts.


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

i decidet to post this little texture fix here for those who like to have more "original" textures for ffed3d

first create the planets folders in ffed3d's models folder from 113 up to 137 and put following effect.fx in each:

Code:
float4x4 viewprojmat; // view*proj
float4x4 worldmat; // world
float4 light; // light source
float4 lightcol; // light color
float4 ambient; // ambient color

texture tex; // current texture
int texnum;

sampler s_tex = sampler_state
{
texture = ;
AddressU = WRAP;
AddressV = WRAP;
MIPFILTER = LINEAR;
MINFILTER = LINEAR;
MAGFILTER = LINEAR;
};

struct VS_OUTPUT
{
float4 position : POSITION;
float3 normal : TEXCOORD1;
float4 color : COLOR0;
float3 tex_vu : TEXCOORD0;
float3 lightDir : TEXCOORD2;
};

VS_OUTPUT Vexel_Sh(
float4 pos : POSITION,
float3 nor : NORMAL,
float4 col : COLOR0,
float3 tex_vu : TEXCOORD0
)
{
VS_OUTPUT Out = (VS_OUTPUT)0;

Out.position = mul( mul(pos, worldmat), viewprojmat);

Out.lightDir = light;

Out.normal = normalize(mul(nor, worldmat));
Out.color = col;
Out.tex_vu = tex_vu;

return Out;
}

float4 Pixel_Sh(
float2 tex_vu : TEXCOORD0,
float3 normal : TEXCOORD1,
float3 lightDir : TEXCOORD2,
float4 color : COLOR0
) : COLOR0
{
float4 ut;
ut.a=1;

float4 texcol = tex2D(s_tex, tex_vu);
float3 lightn = normalize(lightDir);
float4 diffuse = saturate(dot(lightn, normal));

ut.rgb = diffuse * lightcol * color * texcol;

return ut;
}

technique PixelLight
{
pass P0
{
VertexShader = compile vs_1_1 Vexel_Sh();
PixelShader = compile ps_2_0 Pixel_Sh();
}
}

**

this will simply revert the call for planets surface texture to it's original texture, so you don't have to remove the textures from textures folder.

it will (maybe*) look like this

th_venusotex.jpg th_ffed3dearth_notex.jpg

after a small hack at 0x1170DC from 04 to 01 earth should look like that,

th_ffed3dearth_notex_colorfix.jpg

* others might get other results, please post

** edit sorry


ReplyQuote
Pinback
(@pinback)
99 Star General Site Moderator
Joined: 7 years ago
Posts: 9066
 

Nice Potsomker 66,like the frontier emblem. 😎


ReplyQuote
Potsmoke66
(@potsmoke66)
Captain Registered
Joined: 7 years ago
Posts: 1815
Topic starter  

the labels, yes

needs (a lot)more work.

labels are only visible on a cobra mk1 when a fuelscoop is mounted (and visible), this is a very strange issue of ffed3d.

on a cobra mk3 it's impossible to have labels, even with a mounted fuelscoop also the scoop is not visible.

there is a mishandling of the submodel commands in ffed3d, i think. though the process ends after certain commands.

this can (possibly) be fixed with placing the commands in a different hierarchy so that the labels will be processed before all others (not easy), but i need more results.

position, font type and size of the labels is much easier, once you understand how it works in FFE(FE2). actually this are shots from the same ship with two different names (i placed one label on the bottom side). but you can have (>)two different labels on one ship because the text used can be read from (used)strings in the game. a ship with reg.# on one side, commander name on the other, or any other fixed (i.e. ships name "cobra mk I") or variable string (i.e. commander status or # of kills) and a additional small name tag under the rostrum is possible to. though positioning has it's limits and labels can only be moved within the given vertex spacing in ffe, which is very coarse (~20cm, just to imagine). but as long as the models fits more or less the original size this can be fixed with a small size correction of the model or been left aside (a gap less then 10cm between label and hull you won't recognize in the game because of mipmapping).


ReplyQuote
Page 2 / 2