Forums » Modern Era - Air Combat » F-22 Total Air War » .3 Files

Page 9 of 10 < 1 2 ... 7 8 9 10 >
Topic Options
Rate This Topic
Hop to:
#2838797 - 08/11/09 12:32 AM Re: .3 Files [Re: DrKevDog]
mikew Offline
SimHQ Member

Registered: 02/26/01
Posts: 1703
Loc: UK
At least you've done something! My contribution over the last week has been nil.

I can explain the 3rd and 4th byte discrepancy though. At some point I made a script which changes those bytes in all .3 files to 3E80 (16000) which increases the viewing range.....and I must have used those files to produce that big zip file.

You're probably better off sticking to the files produced with the parser since I've changed the way the binary file is cut up into text strings.

Top Bookmark and Share
#2840147 - 08/12/09 04:51 PM Re: .3 Files [Re: mikew]
DrKevDog Offline
SimHQ Member

Registered: 06/27/06
Posts: 596
Originally Posted By: mikew
I can explain the 3rd and 4th byte discrepancy though. At some point I made a script which changes those bytes in all .3 files to 3E80 (16000) which increases the viewing range.....and I must have used those files to produce that big zip file.



Thanks for the explanation, I suspected that was the reason. One of my goals is to find a way to introduce some of the noname, non-krus files, which are not conventionally used, into TAW. I am hoping sections of the header information, such as viewing distance, will allow me to group objects in such a way as to determine relationships and, perhaps, function.

Top Bookmark and Share
#2846170 - 08/22/09 10:02 AM Re: .3 Files [Re: DrKevDog]
DrKevDog Offline
SimHQ Member

Registered: 06/27/06
Posts: 596
Slightly OT:

Eurofighter 3D-object extraction success: not yet reading

Eurofighter Textures and Sound files extraction success: thumbsup

Have been successful in extracting a large cache of, what I believe is, the complete set of textures (including DDS files of DXT-1 and DXT-3 compression format textures). TGA, BMP, DDS formats. They are irfanview and photoshop (with plugin) viewable.

Also a large collection of .wav and other SFX/MUSIC files. Am quite hopeful many will provide TAW portability yep

Although it seems a little more challenging, looking forward to moving on to extracting the 3D-object and other files biggrin

Top Bookmark and Share
#2846259 - 08/22/09 12:33 PM Re: .3 Files [Re: DrKevDog]
HomeFries Online   cool
F22 Air Dominance Project
SimHQ Member

Registered: 01/01/01
Posts: 715
Loc: Greater Washington DC Area
Originally Posted By: DrKevDog
Slightly OT:

Eurofighter 3D-object extraction success: not yet reading

Eurofighter Textures and Sound files extraction success: thumbsup

Have been successful in extracting a large cache of, what I believe is, the complete set of textures (including DDS files of DXT-1 and DXT-3 compression format textures). TGA, BMP, DDS formats. They are irfanview and photoshop (with plugin) viewable.

Also a large collection of .wav and other SFX/MUSIC files. Am quite hopeful many will provide TAW portability yep

Although it seems a little more challenging, looking forward to moving on to extracting the 3D-object and other files biggrin


Bet OT reply in a while! thumbsup
_________________________
-Home Fries

The average Naval Aviator, despite the sometimes swaggering exterior, is very much capable of such feelings as love, affection, intimacy, and caring.
These feelings just don't involve anyone else.

F-22 Air Dominance Project

Top Bookmark and Share
#2878799 - 10/12/09 11:57 PM Re: .3 Files [Re: HomeFries]
HomeFries Online   cool
F22 Air Dominance Project
SimHQ Member

Registered: 01/01/01
Posts: 715
Loc: Greater Washington DC Area
bump

Top Bookmark and Share
#2879045 - 10/13/09 11:25 AM Re: .3 Files [Re: HomeFries]
Colonel Kern Offline
SimHQ Member

Registered: 04/16/03
Posts: 1039
I'll admit I do not keep up on this particular glossary of technobabble......

Is there a possibility that you can fit EF2000 with a Glide or D3D capability??
_________________________
The Colonel

"They're not toys. They're collectables."

Top Bookmark and Share
#2879384 - 10/13/09 08:42 PM Re: .3 Files [Re: Colonel Kern]
HomeFries Online   cool
F22 Air Dominance Project
SimHQ Member

Registered: 01/01/01
Posts: 715
Loc: Greater Washington DC Area
Doubtful. The more likely route would be to convert the EF2000 objects (and thus the Scandinavia theater) to the TAW engine. Bringing over the EF2000 would require source code edits.
_________________________
-Home Fries

The average Naval Aviator, despite the sometimes swaggering exterior, is very much capable of such feelings as love, affection, intimacy, and caring.
These feelings just don't involve anyone else.

F-22 Air Dominance Project

Top Bookmark and Share
#2897053 - 11/08/09 12:44 PM Re: .3 Files [Re: HomeFries]
mikew Offline
SimHQ Member

Registered: 02/26/01
Posts: 1703
Loc: UK
A new piece of information, the '0007' operator does not appear to be a GOTO statement after all, but a GOSUB based on one of the 'Options' settings. Probably 'Airfield Detail'.

As mentioned in anther thread, I'm doing some experiments with the Python language instead of VB. The first thing I've done is try and interpret the jumps through the 3 file to provide the vertex and polygon information in a particular set of circumstances.

For example, taking the simple 'tent_3' file and setting the damage level to 1 and viewed from close range only uses the following lines of code which is what is actually rendered:

Code:
0065FFFD
0061000A0000
006200000001FFFFFFF1
006E000700010006
006BFFF00005
006D001E0008
006B00100007
006EFFF7FFFF0001
00750000
00750006
00750005
00750008
00750007
00750001
0062000AFFDD00000023
00640046
0066FFBA
0064FFBA
00640023
00660046
0066FFDD
0064FFDD
00640046
00610009000A
00470009000400010001002000010020002000010020
008E0004000A000F00100011
00470009000400200001003F0001003F002000200020
008E0004000F000B00120010
00470009000400200020003F0020003F003F0020003F
008E000400100012000C000E
00470009000400010020002000200020003F0001003F
008E000400110010000E000D
009F000E0074040100B700B700BC00BC009E0005000800010000
009F000E0070040100B700B700BC00BC009E0000000100070006
009F000C0072030100B800BA00B7009D000500000006
009F000C006E030100B900B600BB009D000800070001 


This can be pasted into the 'input.txt' file of the 3D viewer I posted a couple of pages back to see what it looks like:


The whole parsed tent_3 file is here:

Code:
0000 00300003 
0001 006200000000FFFBFFF1 
0002 0066001E 
0003 006700080002 
0004 0066FFE2 
0005 0064FFF0 
0006 00650003 
0007 00640010 
0008 0066001E 
0009 0064FFF0 
0010 0065FFFD 
0011 0061000A0000 
0012 002700A50184 If Distance >165 then jump to line 43
0013 00480007 
0014 0022000000D0 If Parameter 0007 > 0 then jump to line 25
0015 0008035A Jump to Sub at line 99
0016 009F000E0035040100D000D000CD00CD009E0001000000040009 
0017 009F000E0033040100CE00CE00CF00CF009E0000000100020003 
0018 009F000C0036030100CA00CB00C9009D000400000003 
0019 009F000C0032030100CA00C900CB009D000900020001 
0020 009F000E0036040100CA00C900C800C9009E0004000300060005 
0021 009F000E0032040100C900CA00C900C8009E0002000900080007 
0022 009F000E0038040100CC00CC00CA00CA009E0009000400050008 
0023 009F000E0034040100C800C800C600C6009E0003000200070006 
0024 0000 
0025 006200000001FFFFFFF1 
0026 006E000700010006 
0027 006BFFF00005 
0028 006D001E0008 
0029 006B00100007 
0030 006EFFF7FFFF0001 
0031 00750000 
0032 00750006 
0033 00750005 
0034 00750008 
0035 00750007 
0036 00750001 
0037 00080188 Jump to Sub at line 79
0038 009F000E0074040100B700B700BC00BC009E0005000800010000 
0039 009F000E0070040100B700B700BC00BC009E0000000100070006 
0040 009F000C0072030100B800BA00B7009D000500000006 
0041 009F000C006E030100B900B600BB009D000800070001 
0042 0000 
0043 002700FA00E0 If Distance >250 then jump to line 71
0044 00480007 
0045 0022000000BC If Parameter 0007 > 0 then jump to line 68
0046 006200030008FFFDFFF1 
0047 006C00030006 
0048 006BFFF00005 
0049 006CFFFD0004 
0050 006D001E0009 
0051 006C00030008 
0052 006B00100007 
0053 006CFFFD0002 
0054 00750003 
0055 00750006 
0056 00750005 
0057 00750004 
0058 00750009 
0059 00750008 
0060 00750007 
0061 00750002 
0062 009F00080038010300CC009E0009000400050008 
0063 009F00080036010300CA009E0004000300060005 
0064 009F00080032010300CA009E0002000900080007 
0065 009F00080034010300C8009E0003000200070006 
0066 009F00080035010300CE009E0004000900020003 
0067 0000 
0068 00080058 Jump to Sub at line 79
0069 009F00080077010300B9009E0005000800070006 
0070 0000 
0071 002703840456 If Distance >900 then jump to line 244
0072 00480007 
0073 002200000018 If Parameter 0007 > 0 then jump to line 76
0074 009F00080035010300CA009E0006000500080007 
0075 0000 
0076 00080018 Jump to Sub at line 79
0077 009F00080077010300B9009E0006000500080007 
0078 0000 
0079 002703840416 If Distance >900 then jump to line 244
0080 0062000AFFDD00000023 
0081 00640046 
0082 0066FFBA 
0083 0064FFBA 
0084 00640023 
0085 00660046 
0086 0066FFDD 
0087 0064FFDD 
0088 00640046 
0089 00610009000A 
0090 00470009000400010001002000010020002000010020 
0091 008E0004000A000F00100011 
0092 00470009000400200001003F0001003F002000200020 
0093 008E0004000F000B00120010 
0094 00470009000400200020003F0020003F003F0020003F 
0095 008E000400100012000C000E 
0096 00470009000400010020002000200020003F0001003F 
0097 008E000400110010000E000D 
0098 0000 
0099 002700960356 If Distance >150 then jump to line 244
0100 002700930138 If Distance >147 then jump to line 179
0101 002700900128 If Distance >144 then jump to line 176
0102 0027008D0118 If Distance >141 then jump to line 173
0103 0027008A0108 If Distance >138 then jump to line 170
0104 0027008700F8 If Distance >135 then jump to line 167
0105 0027008400E8 If Distance >132 then jump to line 164
0106 0027008100D8 If Distance >129 then jump to line 161
0107 0027007E00C8 If Distance >126 then jump to line 158
0108 0027007B00B8 If Distance >123 then jump to line 155
0109 0027007800A8 If Distance >120 then jump to line 152
0110 002700750098 If Distance >117 then jump to line 149
0111 002700720088 If Distance >114 then jump to line 146
0112 0027006F0078 If Distance >111 then jump to line 143
0113 0027006C0068 If Distance >108 then jump to line 140
0114 002700690058 If Distance >105 then jump to line 137
0115 002700660048 If Distance >102 then jump to line 134
0116 002700630038 If Distance >99 then jump to line 131
0117 002700600028 If Distance >96 then jump to line 128
0118 0027005D0018 If Distance >93 then jump to line 125
0119 0027005A0008 If Distance >90 then jump to line 122
0120 000700CC Jump to line 182
0121 0000 
0122 0098FFFF 
0123 000700C2 Jump to line 182
0124 0000 
0125 0098FFFE 
0126 000700B8 Jump to line 182
0127 0000 
0128 0098FFFD 
0129 000700AE Jump to line 182
0130 0000 
0131 0098FFFC 
0132 000700A4 Jump to line 182
0133 0000 
0134 0098FFFB 
0135 0007009A Jump to line 182
0136 0000 
0137 0098FFFA 
0138 00070090 Jump to line 182
0139 0000 
0140 0098FFF9 
0141 00070086 Jump to line 182
0142 0000 
0143 0098FFF8 
0144 0007007C Jump to line 182
0145 0000 
0146 0098FFF7 
0147 00070072 Jump to line 182
0148 0000 
0149 0098FFF6 
0150 00070068 Jump to line 182
0151 0000 
0152 0098FFF5 
0153 0007005E Jump to line 182
0154 0000 
0155 0098FFF4 
0156 00070054 Jump to line 182
0157 0000 
0158 0098FFF3 
0159 0007004A Jump to line 182
0160 0000 
0161 0098FFF2 
0162 00070040 Jump to line 182
0163 0000 
0164 0098FFF1 
0165 00070036 Jump to line 182
0166 0000 
0167 0098FFF0 
0168 0007002C Jump to line 182
0169 0000 
0170 0098FFEF 
0171 00070022 Jump to line 182
0172 0000 
0173 0098FFEE 
0174 00070018 Jump to line 182
0175 0000 
0176 0098FFED 
0177 0007000E Jump to line 182
0178 0000 
0179 0098FFEC 
0180 00070004 Jump to line 182
0181 0000 
0182 0062001300080000000F 
0183 0066FFE2 
0184 0064FFF0 
0185 0066001E 
0186 006100040013 
0187 004301FF002E If Time of Day = 511 then jump to line 196
0188 004301FF0028 If Time of Day = 511 then jump to line 196
0189 0043003F0172 If Time of Day = 63 then jump to line 232
0190 0043001F0134 If Time of Day = 31 then jump to line 226
0191 0043000F00F6 If Time of Day = 15 then jump to line 220
0192 0043000700B8 If Time of Day = 7 then jump to line 214
0193 00430003007A If Time of Day = 3 then jump to line 208
0194 00430001003C If Time of Day = 1 then jump to line 202
0195 0000 
0196 00620017FFED0000FFF1 
0197 0066001E 
0198 006100020017 
0199 00470006000400000040003F0040003F007F0000007F 
0200 008800040017001800160015 
0201 0000 
0202 00620017FFF30000FFF1 
0203 0066001E 
0204 006100020017 
0205 00470006000400000040003F0040003F007F0000007F 
0206 008800040017001800160015 
0207 0000 
0208 00620017FFF50000FFF1 
0209 0066001E 
0210 006100020017 
0211 00470006000400000040003F0040003F007F0000007F 
0212 008800040017001800160015 
0213 0000 
0214 00620017FFF70000FFF1 
0215 0066001E 
0216 006100020017 
0217 00470006000400000040003F0040003F007F0000007F 
0218 008800040017001800160015 
0219 0000 
0220 0062001700090000000F 
0221 0066FFE2 
0222 006100020017 
0223 00470006000400000040003F0040003F007F0000007F 
0224 008800040017001800140013 
0225 0000 
0226 00620017000B0000000F 
0227 0066FFE2 
0228 006100020017 
0229 00470006000400000040003F0040003F007F0000007F 
0230 008800040017001800140013 
0231 0000 
0232 00620017000D0000000F 
0233 0066FFE2 
0234 006100020017 
0235 00470006000400000040003F0040003F007F0000007F 
0236 008800040017001800140013 
0237 0000 
0238 0062001700130000000F 
0239 0066FFE2 
0240 006100020017 
0241 00470006000400000040003F0040003F007F0000007F 
0242 008800040017001800140013 
0243 0000 
0244 0000 
0245 FFFF 
0246 002000200020 



For what it's worth, the Python script used to do this is here:

Code:
f = open("C:\eclipse\workspace\\taw_3\\tent_3.3.TXT")
index=[]
data=[]
branch=[]
total=0
xx=0
active48=""
active15=0
hand8=0
after15=0
try:
    for line in f:
        index.append("%04d"%total)
        data.append(line[0:len(line)-1])
        total+=1
#        print opcode
finally:
    f.close()
    total-=1
    count=0
    nest=1
    active7=1
    param0007=1
    distance=10
    tod=31
    jumpbase=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    branchind=0
    active8=0
    curr15=0
    while nest>0:

        temp=data[count]
        opcode= temp[0:4]
        if opcode=="0000":
            nest-=1
            if nest>0:
                count=jumpbase[nest]+1
                
        elif opcode=="0007":
            jump=int(temp[4:8],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if active7==1:
                jumpbase[nest]=count
                count+=hopline
                print 7,count
                nest+=1
            else:
                count+=1    
#            print index[count]+" "+data[count]+" "+comment[count]
        elif opcode=="0008":
            jump=int(temp[4:8],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if active15==0:
                jumpbase[nest]=count
                oldcount=count
                count+=hopline
                print oldcount,8,count  
                nest+=1
            else:
                hand8+=1
                trycount=count+hopline
                temp=data[trycount]
                if temp[0:4]=="0015":
                    count+=1
                else:
                    jumpbase[nest]=count
                    oldcount=count
                    count+=hopline
                    print oldcount,8,count  
                    nest+=1               
            if hand8==2:
                active15=0
                hand8=0
                count=after15                                                           
#            print index[count]+" "+data[count]+" "+comment[count]
        elif opcode=="0015":
            after15=count+7
            active15=1
            print count,15
            count+=1

        elif opcode=="0021":
            param=int(temp[4:8],16)
            jump=int(temp[8:12],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if param0007==param:
                count+=hopline
                print 21,count
            else:
                count+=1                
#            print index[count]+" "+data[count]+" "+comment[count]
        elif opcode=="0022":
            param=int(temp[4:8],16)
            jump=int(temp[8:12],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if param0007>param:
                count+=hopline
                print 22,count
            else:
                count+=1       
#            print index[count]+" "+data[count]+" "+comment[count]
        elif opcode=="0027":
            dist=int(temp[4:8],16)
            jump=int(temp[8:12],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if distance>dist:
                count+=hopline
                print 27,count
            else:
                count+=1       
#            print index[count]+" "+data[count]+" "+comment[count]
        elif opcode=="0043":
            tim=int(temp[4:8],16)
            jump=int(temp[8:12],16)
            hopcount=2
            hopline=1
            while hopcount<jump:
                temp=data[count+hopline]
                linlen=len(temp)/2
                hopcount+=linlen
                hopline+=1
            if tod==tim:
                jumpbase[nest]=count
                count+=hopline
                print 43,count
                nest+=1
            else:
                count+=1                                
#            print index[count]+" "+data[count]+" "+comment[count]

        elif opcode=="0048":
            active48=temp[4:8]
            count+=1
        else:
            branch.append(data[count])
            branchind+=1
            count+=1

f = file("C:\eclipse\workspace\\taw_3\\tent_3branch.TXT","w")
while xx<branchind:
    print >> f, branch[xx]
    xx+=1
f.close()    


It looks better in a proper editor with context highlighting. smile

Top Bookmark and Share
#2897240 - 11/08/09 07:59 PM Re: .3 Files [Re: mikew]
DrKevDog Offline
SimHQ Member

Registered: 06/27/06
Posts: 596
Looks like the Python language has good potential. I hope it can assist with the TAW modifications, hopefully some further insight into modifying or even creating some new .3D object files. Some new 3D objects introduced to TAW give TAW gameplay a little lift:















Perhaps the Python language will facilitate doing what D.I.D. could not, and somehow write the appropriate code to slay the dreaded Z-buffer monster, that would be progress thumbsup



As you can see I'm working on some much needed canards, sure could use some help in recompiling the EF2K SSD's for use in TAW.

Top Bookmark and Share
#2897422 - 11/09/09 05:49 AM Re: .3 Files [Re: DrKevDog]
mikew Offline
SimHQ Member

Registered: 02/26/01
Posts: 1703
Loc: UK
Anything that can be done with Python can also be done with Visual Basic. But after a few hours of Python I'm still in awe of how easy it is to do quite complicated tasks. This may be the 'new mistress' effect though. smile

All the control surfaces from TAW's F22, and presumably the EF2000's canards etc, have their own .3 files. These are not referenced from the .ssd file, but direct from the game .exe. I don't know the exact mechanism for this though......

Top Bookmark and Share
Page 9 of 10 < 1 2 ... 7 8 9 10 >



Forum Use Agreement | Privacy Statement | SimHQ Staff
Copyright 2009, SimHQ Inc. All Rights Reserved.