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.
hidden post of a cool avatar for free
i know it's off topic somewhat but, just to amuse you (and myself).
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 😆
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 😀
for a easy access (edit) of ffe object.doc:
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.
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
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
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). 😉
here's the bitmap font character distribution, useful to create a suitable font for ffed3d
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 😎
just to make you curious
[attachment=95:cobramk1_s1.jpg]
[attachment=97:cobramk1_s2.jpg]
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. 😀
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:
---------
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
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.
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.
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.
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:
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
after a small hack at 0x1170DC from 04 to 01 earth should look like that,
* others might get other results, please post
** edit sorry
Nice Potsomker 66,like the frontier emblem. 😎
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).