SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Silent Hunter 3 - 4 - 5 > SH5 Mods Workshop
Forget password? Reset here

Reply
 
Thread Tools Display Modes
Old 10-22-11, 02:20 PM   #166
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

v1.0.234.0 released. See post #1.

I can now read the correct extended data for anything. Problem is I can't read the strings associated with that data yet. Still working on it

This version adds the extended data (if the item has any). If the extended data references other strings or has pointers to something else I can't support those yet either.
TheDarkWraith is offline   Reply With Quote
Old 10-22-11, 07:39 PM   #167
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

I can read the strings for extended data now. It's not entirely correct (about 85% correct). There are pointers 3-5 levels deep and it makes it hard to decipher Not to mention that the GR2 file has a wacked out way of keeping track of it's embedded strings It utterly hates to have duplicates of anything in it so it's got this totally elaborate scheme that only partly makes sense currently.
TheDarkWraith is offline   Reply With Quote
Old 10-22-11, 10:43 PM   #168
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

figured out the granny system of how it stores/uses embedded strings Now I can read any embedded string that I need.

v1.0.256.0 released. This verison will now read the embedded strings for all items that have extended data correctly. The extended data items that have pointers to something else (max properties, dx something, etc) or reference another string has not been coded yet.

Moving along nicely now

TheDarkWraith is offline   Reply With Quote
Old 10-23-11, 01:30 PM   #169
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

v1.0.276.0 released. See post #1

This version reads more of the extended data associated with an item. It also tells you where it reads each item of this extended data so you can find it in the file easier. The extended data's values are now read also.

The reading of the max properties is perfect but it currently doesn't read this value for every item's extended data. Trying to figure out why still.

If an item's extended data has a pointer to another 'extended data' (i.e. max properties, directx something, etc.) I've not coded all of those. I have a majority of them done though

The way the granny system uses/finds embedded strings is pretty slick. It was just a bear to figure out initially
TheDarkWraith is offline   Reply With Quote
Old 10-24-11, 12:54 AM   #170
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

v1.0.284.0 released. See post #1

All extended data for any item is now read correctly (it's totally dynamic - nothing hard coded here. The file [pointers] tells you everything you need to know!). Since I have all the extended data, items visibility is set accoding to it's max properties:hide value. Fixed some formatting issues with the debug output. Added missing offet and position in file (0x_) information to those missing it. Have to redo the map enables/map values so that they spit out their file offset and file position info on values read. That will be in next version

TheDarkWraith is offline   Reply With Quote
Old 10-24-11, 02:08 AM   #171
kylania
Silent Hunter
 
Join Date: Aug 2006
Posts: 3,528
Downloads: 117
Uploads: 0
Default

Fantastic work TDW!
__________________

kylania is offline   Reply With Quote
Old 10-24-11, 04:00 AM   #172
Obelix
Seasoned Skipper
 
Join Date: Aug 2010
Location: 49°44´N 129°40´E
Posts: 665
Downloads: 124
Uploads: 7
Default

Hi TheDarkWraith!
With the new version, like the previous one, does not appear IIA
I see that the program swears by the encoding, whether it be due to the Russian version of windows?
Other models successfully opened (in folders sea and submarine)
Code:
00000000 0.00000000 [2080] Silent Hunter 5 GR2 Editor / Viewer v1.0.284.0 by TheDarkWraith
00000001 0.00000000 [2080]
00000002 0.03525316 [2080] D: \ GAMES \ U-Boats \ GR2EditorViewer \ GR2EditorViewer.cfg exists = True
00000003 0.03525316 [2080]
00000004 0.03532156 [2080] Reading in cfg file ...
00000005 0.03532156 [2080]
00000006 0.03921311 [2080] Entry found: SH5InstallPath = D: \ GAMES \ U-Boats
00000007 0.03921311 [2080]
00000008 0.03926704 [2080] Entry found: ShowWorldOrigin = False
00000009 0.03926704 [2080]
00000010 0.03933873 [2080] Entry found: WorldOriginSize = 5
00000011 0.03933873 [2080]
00000012 0.03937852 [2080] Entry found: WorldOriginOpacity = 122
00000013 0.03937852 [2080]
00000014 0.03943607 [2080] Entry found: WorldOriginColor =- 16,711,681
00000015 0.03943607 [2080]
00000016 0.03948112 [2080] Entry found: ShowWorldOriginLabel = False
00000017 0.03948112 [2080]
00000018 0.03954525 [2080] Entry found: WorldOriginLabelSize = 7,5
00000019 0.03954525 [2080]
00000020 0.03958569 [2080] Entry found: WorldOriginLabelOpacity = 122
00000021 0.03958569 [2080]
00000022 0.03964587 [2080] Entry found: WorldOriginLabelColor =- 16,711,681
00000023 0.03964587 [2080]
00000024 0.03970934 [2080] Entry found: ShowWorldOriginAxis = True
00000025 0.03970934 [2080]
00000026 0.03974880 [2080] Entry found: WorldOriginAxisOpacity = 122
00000027 0.03974880 [2080]
00000028 0.03981424 [2080] Entry found: ShowBoneOrigin = True
00000029 0.03981424 [2080]
00000030 0.03985272 [2080] Entry found: BoneOriginSize = 5
00000031 0.03985272 [2080]
00000032 0.03990829 [2080] Entry found: BoneOriginOpacity = 185
00000033 0.03990829 [2080]
00000034 0.03997899 [2080] Entry found: BoneOriginColor =- 10,185,235
00000035 0.03997899 [2080]
00000036 0.04001878 [2080] Entry found: ShowBoneOriginLabel = True
00000037 0.04001878 [2080]
00000038 0.04008061 [2080] Entry found: BoneOriginLabelSize = 9,0
00000039 0.04008061 [2080]
00000040 0.04012270 [2080] Entry found: BoneOriginLabelOpacity = 185
00000041 0.04012270 [2080]
00000042 0.04018748 [2080] Entry found: BoneOriginLabelColor =- 10,185,235
00000043 0.04018748 [2080]
00000044 0.04022464 [2080] Entry found: ShowBoneOriginAxis = True
00000045 0.04022464 [2080]
00000046 0.04028087 [2080] Entry found: BoneOriginAxisOpacity = 122
00000047 0.04028087 [2080]
00000048 0.04038643 [2080] Entry found: ShowBones = False
00000049 0.04038643 [2080]
00000050 0.04044891 [2080] Entry found: ShowBoneInterconnects = True
00000051 0.04044891 [2080]
00000052 0.04059361 [2080] Entry found: CullMode = CounterClockwise
00000053 0.04059361 [2080]
00000054 0.04068963 [2080] Entry found: FillMode = solid
00000055 0.04068963 [2080]
00000056 0.04073238 [2080] Entry found: ShadeMode = Gouraud
00000057 0.04073238 [2080]
00000058 0.04079584 [2080] Entry found: PointsSize = 3.5
00000059 0.04079584 [2080]
00000060 0.04083563 [2080] Entry found: PointsColor =- 65 281
00000061 0.04083563 [2080]
00000062 0.04089746 [2080] Entry found: PointsOpacity = 50
00000063 0.04089746 [2080]
00000064 0.04093560 [2080] Entry found: WireframeColor =- 128
00000065 0.04093560 [2080]
00000066 0.04098921 [2080] Entry found: WireframeOpacity = 50
00000067 0.04098921 [2080]
00000068 0.04104643 [2080] Entry found: SolidColor =- 3673639
00000069 0.04104643 [2080]
00000070 0.04108950 [2080] Entry found: SolidOpacity = 255
00000071 0.04108950 [2080]
00000072 0.04114870 [2080] Entry found: SolidIsTexture = True
00000073 0.04114870 [2080]
00000074 0.11984655 [2080] DirectX initialized
00000075 0.11984655 [2080]
00000076 0.14842251 [2080] SH5 install path set to D: \ GAMES \ U-Boats
00000077 0.14842251 [2080]
00000078 7.85648155 [2080] GR2 file path is D: \ GAMES \ U-Boats \ data \ Submarine \ NSS_Uboat2a \ NSS_Uboat2a.GR2
00000079 7.85648155 [2080]
00000080 7.88121939 [2080] Current position in file is 0x0
00000081 7.88261795 [2080]
00000082 7.88261795 [2080] Reading file header data starting at 0x0
00000083 7.88288260 [2080] Magic string =)? LA? ¤ S +% o ·? Ofai 0x10
00000084 7.88289118 [2080] Start of file data file offset (from file beginning) = 0x1C8 0x14 where the file list header starts
00000085 7.88291550 [2080] Unknown1 = 0x0 0x18
00000086 7.88293982 [2080] Unknown2 = 0x0 0x1C
00000087 7.88296556 [2080] Unknown3 = 0x0 0x20
00000088 7.88298893 [2080] Current position in file is 0x20
00000089 7.88462019 [2080]
00000090 7.88462019 [2080] Reading info header data starting at 0x20
00000091 7.88464642 [2080] File format revision = 0x7 0x24
00000092 7.88468218 [2080] File size in bytes = 9277620 0x28
00000093 7.88470554 [2080] CRC value = 0xEBF60FF2 0x2C
00000094 7.88473082 [2080] Bytes from offset to start of sections = 0x48 0x30 bytes from start of this to first section
00000095 7.88475418 [2080] Number of sections = 8 0x34
00000096 7.88477850 [2080] Root object type (?) = 0x6 0x38
00000097 7.88480377 [2080] Root object offset (?) = 0x4DE0 0x3C
00000098 7.88482809 [2080] Unknown1 = 0x0 0x40
00000099 7.88485146 [2080] Unknown2 = 0x0 0x44
00000100 7.88488197 [2080] Tag = 0x80000032 0x48
00000101 7.88491631 [2080] Current position in file is 0x68
00000102 7.88739300 [2080]
00000103 7.88739300 [2080] Reading section 0 (arttoolinfo) data starting at 0x68
00000104 7.88742304 [2080] Unknown = 0x0 0x6C always 0x0
00000105 7.88744879 [2080] Section file offset = 0x1C8 0x70 where this section starts in the file
00000106 7.88747454 [2080] Compressed size = 70 384 0x74 compressed size and uncompressed sizes should equal for SH5 GR2s
00000107 7.88749933 [2080] Uncompressed size = 70 384 0x78 compressed size and uncompressed sizes should equal for SH5 GR2s
00000108 7.88752460 [2080] Alignment = 0x4 0x7C what the alignment boundary is in the file
00000109 7.88754940 [2080] Start of data fileoffset = 0xB478 0x80 start of data
00000110 7.88757324 [2080] Start of data fileoffset2 = 0xBD48 0x84 start of data
00000111 7.88759804 [2080] Pointers file offset = 0x8CF4DC 0x88 where the pointers for this section are located
00000112 7.88762426 [2080] Number of pointers = 0x8C 2257
00000113 7.88764954 [2080] End of pointers file offset = 0x8D84C4 0x90 where the pointers for the file end
00000114 7.88767385 [2080] Unknown2 = 0xBF 0x94
00000115 7.88770485 [2080] ********* Two pointers to section data that should have same value are different in section 0. Please report to TheDarkWraith@Subsim.com *********
00000116 7.88770485 [2080]
00000117 7.89070749 [2080] This GR2 file has section 0's endofpointersfileoffset! = Filesizeinbytes. This is normally the case.
00000118 7.89070749 [2080]
00000119 7.89376354 [2080] ********* Unknown pointer 2 found to be non-zero in section header 0. It is usually 0x0 *********
00000120 7.89376354 [2080]
00000121 7.89700842 [2080] Current position in file is 0x94
00000122 7.89813089 [2080]
00000123 7.89813089 [2080] Reading section 1 (vertex_data) data starting at 0x94
00000124 7.89827967 [2080] Unknown = 0x0 0x98 always 0x0
00000125 7.89846277 [2080] Section file offset = 0x114B8 0x9C where this section starts in the file
00000126 7.89861059 [2080] Compressed size = 7939076 0xA0 compressed size and uncompressed sizes should equal for SH5 GR2s
00000127 7.89884520 [2080] Uncompressed size = 7939076 0xA4 compressed size and uncompressed sizes should equal for SH5 GR2s
00000128 7.89888000 [2080] Alignment = 0x4 0xA8 what the alignment boundary is in the file
00000129 7.89890528 [2080] Start of data fileoffset = 0x792404 0xAC start of data
00000130 7.89893007 [2080] Start of data fileoffset2 = 0x792404 0xB0 start of data
00000131 7.89895535 [2080] Pointers file offset = 0x8D5EA8 0xB4 where the pointers for this section are located
00000132 7.89899445 [2080] Number of pointers = 0 0xB8
00000133 7.89902115 [2080] End of pointers file offset = 0x8D90B4 0xBC where the pointers for the file end
00000134 7.89904451 [2080] Unknown2 = 0x0 0xC0
00000135 7.89906979 [2080] Current position in file is 0xC0
00000136 7.89916039 [2080]
00000137 7.89916039 [2080] Reading section 2 (indicies) data starting at 0xC0
00000138 7.89918518 [2080] Unknown = 0x0 0xC4 always 0x0
00000139 7.89921045 [2080] Section file offset = 0x7A38BC 0xC8 where this section starts in the file
00000140 7.89923811 [2080] Compressed size = 1202304 0xCC compressed size and uncompressed sizes should equal for SH5 GR2s
00000141 7.89926291 [2080] Uncompressed size = 1202304 0xD0 compressed size and uncompressed sizes should equal for SH5 GR2s
00000142 7.89928818 [2080] Alignment = 0x4 0xD4 what the alignment boundary is in the file
00000143 7.89931250 [2080] Start of data fileoffset = 0x125880 0xD8 start of data
00000144 7.89933681 [2080] Start of data fileoffset2 = 0x125880 0xDC start of data
00000145 7.89936161 [2080] Pointers file offset = 0x8D5EA8 0xE0 where the pointers for this section are located
00000146 7.89938545 [2080] Number of pointers = 0 0xE4
00000147 7.89940977 [2080] End of pointers file offset = 0x8D90B4 0xE8 where the pointers for the file end
00000148 7.89943409 [2080] Unknown2 = 0x0 0xEC
00000149 7.89945698 [2080] Current position in file is 0xEC
00000150 7.89948606 [2080]
00000151 7.89948606 [2080] Reading section 3 (unknown3) data starting at 0xEC
00000152 7.89951134 [2080] Unknown = 0x0 0xF0 always 0x0
00000153 7.89953661 [2080] Section file offset = 0x8C913C 0xF4 where this section starts in the file
00000154 7.89956141 [2080] Compressed size = 0 0xF8 compressed size and uncompressed sizes should equal for SH5 GR2s
00000155 7.89958525 [2080] Uncompressed size = 0 0xFC compressed size and uncompressed sizes should equal for SH5 GR2s
00000156 7.89961004 [2080] Alignment = 0x4 0x100 what the alignment boundary is in the file
00000157 7.89963436 [2080] Start of data fileoffset = 0x0 0x104 start of data
00000158 7.89966011 [2080] Start of data fileoffset2 = 0x0 0x108 start of data
00000159 7.89968538 [2080] Pointers file offset = 0x8D5EA8 0x10C where the pointers for this section are located
00000160 7.89970875 [2080] Number of pointers = 0 0x110
00000161 7.89973402 [2080] End of pointers file offset = 0x8D90B4 0x114 where the pointers for the file end
00000162 7.89975739 [2080] Unknown2 = 0x0 0x118
00000163 7.89978123 [2080] Current position in file is 0x118
00000164 7.89981031 [2080]
00000165 7.89981031 [2080] Reading section 4 (unknown4) data starting at 0x118
00000166 7.89983368 [2080] Unknown = 0x0 0x11C always 0x0
00000167 7.89985895 [2080] Section file offset = 0x8C913C 0x120 where this section starts in the file
00000168 7.89988375 [2080] Compressed size = 0 0x124 compressed size and uncompressed sizes should equal for SH5 GR2s
00000169 7.89990807 [2080] Uncompressed size = 0 0x128 compressed size and uncompressed sizes should equal for SH5 GR2s
00000170 7.89993334 [2080] Alignment = 0x4 0x12C what the alignment boundary is in the file
00000171 7.89995766 [2080] Start of data fileoffset = 0x0 0x130 start of data
00000172 7.90002871 [2080] Start of data fileoffset2 = 0x0 0x134 start of data
00000173 7.90005350 [2080] Pointers file offset = 0x8D5EA8 0x138 where the pointers for this section are located
00000174 7.90007734 [2080] Number of pointers = 0 0x13C
00000175 7.90010214 [2080] End of pointers file offset = 0x8D90B4 0x140 where the pointers for the file end
00000176 7.90012598 [2080] Unknown2 = 0x0 0x144
00000177 7.90015030 [2080] Current position in file is 0x144
00000178 7.90018177 [2080]
00000179 7.90018177 [2080] Reading section 5 (unknown5) data starting at 0x144
00000180 7.90020609 [2080] Unknown = 0x0 0x148 always 0x0
00000181 7.90023088 [2080] Section file offset = 0x8C913C 0x14C where this section starts in the file
00000182 7.90025616 [2080] Compressed size = 0 0x150 compressed size and uncompressed sizes should equal for SH5 GR2s
00000183 7.90028095 [2080] Uncompressed size = 0 0x154 compressed size and uncompressed sizes should equal for SH5 GR2s
00000184 7.90030479 [2080] Alignment = 0x4 0x158 what the alignment boundary is in the file
00000185 7.90032911 [2080] Start of data fileoffset = 0x0 0x15C start of data
00000186 7.90035343 [2080] Start of data fileoffset2 = 0x0 0x160 start of data
00000187 7.90037823 [2080] Pointers file offset = 0x8D5EA8 0x164 where the pointers for this section are located
00000188 7.90040207 [2080] Number of pointers = 0 0x168
00000189 7.90042686 [2080] End of pointers file offset = 0x8D90B4 0x16C where the pointers for the file end
00000190 7.90045071 [2080] Unknown2 = 0x0 0x170
00000191 7.90047455 [2080] Current position in file is 0x170
00000192 7.90050316 [2080]
00000193 7.90050316 [2080] Reading section 6 (handles_embedded_strings) data starting at 0x170
00000194 7.90052700 [2080] Unknown = 0x0 0x174 always 0x0
00000195 7.90055180 [2080] Section file offset = 0x8C913C 0x178 where this section starts in the file
00000196 7.90057707 [2080] Compressed size = 25 504 0x17C compressed size and uncompressed sizes should equal for SH5 GR2s
00000197 7.90060329 [2080] Uncompressed size = 25 504 0x180 compressed size and uncompressed sizes should equal for SH5 GR2s
00000198 7.90062714 [2080] Alignment = 0x4 0x184 what the alignment boundary is in the file
00000199 7.90065193 [2080] Start of data fileoffset = 0x63A0 0x188 start of data
00000200 7.90067625 [2080] Start of data fileoffset2 = 0x63A0 0x18C start of data
00000201 7.90070057 [2080] Pointers file offset = 0x8D5EA8 0x190 where the pointers for this section are located
00000202 7.90072441 [2080] Number of pointers = 813 0x194
00000203 7.90074921 [2080] End of pointers file offset = 0x8D90B4 0x198 where the pointers for the file end
00000204 7.90077305 [2080] Unknown2 = 0x0 0x19C
00000205 7.90079689 [2080] Current position in file is 0x19C
00000206 7.90082502 [2080]
00000207 7.90082502 [2080] Reading section 7 (unknown7) data starting at 0x19C
00000208 7.90084934 [2080] Unknown = 0x0 0x1A0 always 0x0
00000209 7.90087414 [2080] Section file offset = 0x8CF4DC 0x1A4 where this section starts in the file
00000210 7.90089798 [2080] Compressed size = 0 0x1A8 compressed size and uncompressed sizes should equal for SH5 GR2s
00000211 7.90092278 [2080] Uncompressed size = 0 0x1AC compressed size and uncompressed sizes should equal for SH5 GR2s
00000212 7.90094709 [2080] Alignment = 0x4 0x1B0 what the alignment boundary is in the file
00000213 7.90097284 [2080] Start of data fileoffset = 0x0 0x1B4 start of data
00000214 7.90099812 [2080] Start of data fileoffset2 = 0x0 0x1B8 start of data
00000215 7.90102434 [2080] Pointers file offset = 0x8D84C4 0x1BC where the pointers for this section are located
00000216 7.90104771 [2080] Number of pointers = 0 0x1C0
00000217 7.90107298 [2080] End of pointers file offset = 0x8D90B4 0x1C4 where the pointers for the file end
00000218 7.90109682 [2080] Unknown2 = 0x0 0x1C8
00000219 7.90112019 [2080] Current position in file is 0x1C8
00000220 7.90136480 [2080] Section 7 pointersfileoffset + numberofpointers! = File length. This is usually the case
00000221 7.90136480 [2080]
00000222 7.91347837 [2080]
00000223 7.91347837 [2080] File info offset at 0x8 (0x1D0)
00000224 7.91352558 [2080] Number of textures = 8 0xC (0x1D4)
00000225 7.91421366 [2080] Start of textures pointer found at 0x14 (0x1DC)
00000226 7.91423941 [2080] Start of textures pointer points to 0x3AC (0x574)
00000227 7.91426468 [2080] Number of materials = 20 0x14 (0x1DC)
00000228 7.91433716 [2080] Start of materials pointer found at 0x1C (0x1E4)
00000229 7.91436100 [2080] Start of materials pointer points to 0x62C (0x7F4)
00000230 7.91438580 [2080] Number of skeletons = 1 0x1C (0x1E4)
00000231 7.91449499 [2080] Start of skeletons pointer found at 0x24 (0x1EC)
00000232 7.91451883 [2080] Start of skeletons pointer points to 0x1A1C (0x1BE4)
00000233 7.91454363 [2080] Number of vertex datas = 20 0x24 (0x1EC)
00000234 7.91473389 [2080] Start of vertex datas pointer found at 0x2C (0x1F4)
00000235 7.91475821 [2080] Start of vertex datas pointer points to 0x7358 (0x7520)
00000236 7.91478300 [2080] Number of tritopologies = 20 0x2C (0x1F4)
00000237 7.91501188 [2080] Start of tritopologies pointer found at 0x34 (0x1FC)
00000238 7.91503716 [2080] Start of tritopologies pointer points to 0x7800 (0x79C8)
00000239 7.91506195 [2080] Number of meshes = 20 0x34 (0x1FC)
00000240 7.91529751 [2080] Start of meshes pointer found at 0x3C (0x204)
00000241 7.91532516 [2080] Start of meshes pointer points to 0x7EEC (0x80B4)
00000242 7.91534996 [2080] Number of models = 1 0x3C (0x204)
00000243 7.91563559 [2080] Start of models pointer found at 0x44 (0x20C)
00000244 7.91566038 [2080] Start of models pointer points to 0xA60C (0xA7D4)
00000245 7.91568565 [2080] Number of trackgroups = 1 0x44 (0x20C)
00000246 7.91599464 [2080] Start of trackgroups pointer found at 0x4C (0x214)
00000247 7.91601849 [2080] Start of trackgroups pointer points to 0xA6BC (0xA884)
00000248 7.91604328 [2080] Number of animations = 1 0x4C (0x214)
00000249 7.91679955 [2080] Start of animations pointer found at 0x54 (0x21C)
00000250 7.91682339 [2080] Start of animations pointer points to 0xB458 (0xB620)
00000251 7.91687727 [2080] Number of unknown = 0 0x54 (0x21C)
00000252 7.91727591 [2080] Start of unknown not found in file pointers
00000253 7.91730213 [2080] Current position in file is 0x224
00000254 7.91732693 [2080]
00000255 7.91732693 [2080] Reading all the pointers for section 0
00000256 7.98605824 [2080] ********* Exception occured. Exception is System.ArgumentException: The buffer output symbols is not sufficient to store the encoded characters, the encoding "Unicode (UTF-8)" reserve "System.Text.DecoderReplacementFallback".
00000257 7.98605824 [2080] Parameter name: chars
00000258 7.98605824 [2080] in System.Text.Encoding.ThrowCharsOverflow ()
00000259 7.98605824 [2080] in System.Text.Encoding.ThrowCharsOverflow (DecoderNLS decoder, Boolean nothingDecoded)
00000260 7.98605824 [2080] in System.Text.UTF8Encoding.GetChars (Byte * bytes, Int32 byteCount, Char * chars, Int32 charCount, DecoderNLS baseDecoder)
00000261 7.98605824 [2080] in System.Text.DecoderNLS.GetChars (Byte * bytes, Int32 byteCount, Char * chars, Int32 charCount, Boolean flush)
00000262 7.98605824 [2080] in System.Text.DecoderNLS.GetChars (Byte [] bytes, Int32 byteIndex, Int32 byteCount, Char [] chars, Int32 charIndex, Boolean flush)
00000263 7.98605824 [2080] in System.Text.DecoderNLS.GetChars (Byte [] bytes, Int32 byteIndex, Int32 byteCount, Char [] chars, Int32 charIndex)
00000264 7.98605824 [2080] in System.IO.BinaryReader.InternalReadOneChar ()
00000265 7.98605824 [2080] in System.IO.BinaryReader.Read ()
00000266 7.98605824 [2080] in System.IO.BinaryReader.PeekChar ()
00000267 7.98605824 [2080] in TheDarkWraith.SilentHunter5.GR2PointerData.ReadNullTerminatedString (GR2EditorViewer & gr2ev, BinaryReader & br, Int32 & alignment, Int32 & bytesread, Boolean ignorealignment)
00000268 7.98605824 [2080] in TheDarkWraith.SilentHunter5.GR2BasePointers.ReadPointerData (GR2EditorViewer & gr2ev, BinaryReader & br, List `1 & sections, Int32 sectionindex, Int32 numberofpointerstoread, Int32 pointerstartindex, Boolean skippointer, List` 1 & stringsread)
00000269 7.98605824 [2080] in TheDarkWraith.SilentHunter5.GR2File.ReadData (Device & device)
00000270 7.98605824 [2080] in TheDarkWraith.SilentHunter5.GR2File.ReadAndParseGR2File (Device & device)
00000271 7.98605824 [2080] in TheDarkWraith.SilentHunter5.GR2EditorViewer.tsmiFileOpen_Click (Object sender, EventArgs e) *********
00000272 7.98605824 [2080]
00000273 10.07775497 [2080] D: \ GAMES \ U-Boats \ data \ Submarine \ NSS_Uboat2a \ NSS_Uboat2a.GR2 closed
00000274 10.07775497 [2080]
00000275 11.59106064 [2080] D: \ GAMES \ U-Boats \ GR2EditorViewer \ GR2EditorViewer.cfg updated
00000276 11.59106064 [2080]
__________________
Speed squadron is the speed of the slowest ship ... but only so long as on the trail of the squadron did not sit submarines ...
Obelix is offline   Reply With Quote
Old 10-24-11, 07:25 AM   #173
JU_88
Silent Hunter
 
Join Date: Jan 2006
Location: UK
Posts: 3,727
Downloads: 11
Uploads: 0
Default

@TDW,
Privateer may have got the ball rolling, but I can see when someone is pouring their heart and soul in to something and I can see that you have been working tremendously hard on this, the amount of ground you have already covered is remarkable.
I take my hat off to you sir.
JU_88 is offline   Reply With Quote
Old 10-24-11, 08:04 AM   #174
tonschk
Admiral
 
Join Date: Mar 2007
Posts: 2,200
Downloads: 172
Uploads: 0
Default

Quote:
Originally Posted by JU_88 View Post
@TDW,

I take my hat off to you sir.
Me Too Amazing , well done TDW
__________________
What we do in life echoes in Eternity
tonschk is offline   Reply With Quote
Old 10-24-11, 08:53 AM   #175
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Quote:
Originally Posted by Obelix View Post
Hi TheDarkWraith!
With the new version, like the previous one, does not appear IIA
I see that the program swears by the encoding, whether it be due to the Russian version of windows?
Other models successfully opened (in folders sea and submarine)
The Type IIA and undersea do not open because my importer still has some problems. The problems stem from how I define the pointers. Since I can read the extended data properly and I know how granny uses/defines embedded strings then I should be able to figure out where the embedded strings end in the file. Once I know this end point then I can adjust the pointer definitions appropriately. I'm working on fixing this today
TheDarkWraith is offline   Reply With Quote
Old 10-24-11, 10:13 AM   #176
Obelix
Seasoned Skipper
 
Join Date: Aug 2010
Location: 49°44´N 129°40´E
Posts: 665
Downloads: 124
Uploads: 7
Default

Quote:
Originally Posted by TheDarkWraith View Post
I'm working on fixing this today
I don't doubt your success!
__________________
Speed squadron is the speed of the slowest ship ... but only so long as on the trail of the squadron did not sit submarines ...
Obelix is offline   Reply With Quote
Old 10-24-11, 11:26 AM   #177
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

I have the app now reading all the embedded strings referenced in the file at the very beginning (the file itself tells me all this info). It spits them all out to debug output so it can be captured with DbgView. It also spits out where the embedded strings start and where they end. Where they end is key as I needed this so my pointer definitions can be correct

Tried opening IIA and Undersea and they still failed. They didn't fail because of the pointers this time - they failed because there is additional data in the file. I don't know what this additional data is but I have to find out now (or at least account for it so I can 'read' over it)

@Obelix - the error you pointed out a few posts above is due to my error checker class that I coded in. Based on what the file tells me (and what I currently know about the GR2 file) it has a set of knowns that it looks for. If it doesn't find all these knowns then it throws an exception to tell me (or you) that there's something different in this file. Very handy.
TheDarkWraith is offline   Reply With Quote
Old 10-24-11, 12:14 PM   #178
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

I've had a couple of people ask how they can start working on the algorithms for the pointers. This is great I can't give you any info yet until I get my importer working correctly. This is because I want to ensure I can read the file correctly and I'm reading/interpreting everything correctly before giving this info
TheDarkWraith is offline   Reply With Quote
Old 10-24-11, 11:08 PM   #179
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

v1.0.294.0 released. See post #1

This version now reads all the embedded strings used by the file and then spits them out to debug output along with offset in file and actual position. The order of these is how they are read from the pointers. Kind of interesting. I needed this info to adjust my pointer definitions so that pointers referencing items after the end of the embedded strings would be defined correctly.

Redid the reading of the ArtToolInfo section to remove some hard coded items and because I learned more about it and where I thought things were were not. Still not happy with it (still contains a few hard coded items) so I'm still working on it.

Fixed items that we displaying incorrect offset in section and actual file position (mainly was the ArtToolInfo:ExtendedDataocumentContents:Elements items)

Added more error checking since I now know where the embedded strings start and end in the file. Error checking also added for start of ExporterInfo section (it's calculated based on the end of the ArtToolInfo:ExtendedDataocumentContents:Elements or I forget what the other one was - whether this is a special GR2 file matters also in this calculation)

Now tells you whether this is a 'special' GR2 file (that is if pointers come before data) in the debug output

Items that have subitems now use idention to make the reading of them easier in the debug output

The outputting of the ArtToolInfo:ExtendedData contents to the debug output has changed. Much easier to read and better information given

Still can't read the VIIA or Undersea GR2 files due to additional unknown data found in them. Still working on it.

Map enables/Map amounts now show the number of them in []s and also each entry shows it's offset in section and actual file position in the debug output

Corrected formatting errors in the debug output (some items had negative values - i.e. 0xFFFF___)

There are a few other things but can't think of them currently
TheDarkWraith is offline   Reply With Quote
Old 10-26-11, 08:57 AM   #180
TheDarkWraith
Black Magic
 
Join Date: Jun 2007
Posts: 11,962
Downloads: 147
Uploads: 5


Default

Much of the beginning information the app spits out is 'hard-coded' items. I asked myself how does Granny know what it knows? From the multitude of GR2 files out there one simply couldn't hard-code for everything. There must be some kind of 'trigger' or something that Granny reads to figure out how to display/read everything. That is what I'm working on currently.

Much of this has to do once again with the pointers. Some of the pointers form a linked-list of sorts. You read one pointer and as it's decoded it points you to another pointer which then points you to another and so on and so forth. This is recursion at its best So far I've followed the pointer trail to how the Granny Viewer knows how to display the ArtToolInfo and it's submenus. Now I just have to code in something that can read these 'linked-lists' and be totally autonomous.
TheDarkWraith is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 11:24 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © 1995- 2024 Subsim®
"Subsim" is a registered trademark, all rights reserved.