Dodatkowe naprawy błędów pliku SH3.EXE
: 19 kwie 2020, 8:18
Co możemy naprawić oprócz Hardcode fixes od H.Sie i Stieblera?
1. Błąd zamiany sonarów i hydrofonów.
Powoduje, że eskortowce namierzają u-boota przy pomocy super sonaru o zasięgu hydrofonu skanującym w poziomie w zakresie -135..+135 stopni od dziobu (czyli za wyjątkiem tylnej półstrefy) a w pionie od 90 do 170 stopni. W tej strefie pojawia się słyszalny ping oraz komunikat o namierzaniu okrętu. Jednocześnie rolę hydrofonu przyjmuje wcześniejszy sonar skanujący wyłącznie w przedniej półstrefie -45...+45 stopni w poziomie i 90...100 stopni w pionie - czyli wąsko i płytko od dziobu.
Efekty błędu są takie, że gdy niszczyciel jest bokiem lub częściowo tyłem, to okręt zostanie wykryty niezależnie od cichego biegu, głębokości i prędkości śrub. Natomiast w przedniej półstrefie w zakresie prędkości peryskopowej i wykrywany jest dodatkowo hałas własny. Nie ma on jednak znaczenia ponieważ super sonar wykryje u-boota wcześniej niż pomylony hydrofon.
Po naprawie hydrofon staje się hydrofonem skanującym hałas wokół niszczyciela na dystansie do 7 km, a sonar z powrotem sonarem pracującym w przedniej strefie niszczyciela na dystansie do 2 km i pingującym tylko po znalezieniu się u-boota przed eskortowcem.
Technicznie przyczyną błędu jest pomyłka rozmieszczenia tablicy nazw węzłów w kodzie źródłowym:
Błędna:
char[] nodes = { "TAR", "ALB", "BLD", "C01", "R01", "N01", "H02", "H01" };
Prawidłowa:
char[] nodes = { "TAR", "ALB", "BLD", "C01", "R01", "H01", "H02", "N01"};
Początek tablicy w kodzie maszynowym SH3.EXE (pozbawionej Starforce - wersja 1.4 H.Sie) zaczyna się od adresu 0x12098C.
Dodatkowo można zmodyfikować sekcje hydrofonu i sonaru w pliku data\cfg\sim.cfg na następujące ponieważ po naprawie hydrofon i sonar są zbyt mało czułe:
--------------------------------------------------------------
[Hydrophone]
Detection time=1 ;[s]
Sensitivity=0.007 ;(0..1)
Height factor=0 ;[m]
Waves factor=0 ;[>=0]
Speed factor=25 ;[kt]
Noise factor=0.2 ;[>=0]
[Sonar]
Detection time=1 ;[s]
Sensitivity=0.001 ;(0..1)
Waves factor=0 ;[>=0]
Speed factor=31 ;[kt]
Enemy surface factor=25 ;[m2]
Lose time=120 ;[s]
---------------------------------------------------------------
Dodatkowo można zmodyfikować sekcję data\cfg\GamePlaySettings.ini, aby naliczana była prawidłowa ilość punktów reputacji w zależności od stopnia realizmu :
[RealismPercentage]
LimitedBatteriesRealismPercentage=3
LimitedCompressedAirRealismPercentage=1
LimitedO2RealismPercentage=2
LimitedFuelRealismPercentage=1
RealisticVulnerabilityRealismPercentage=2
RealisticRepairTimeRealismPercentage=2
RealisticShipSinkingTimeRealismPercentage=1
ManualTargetingSystemRealismPercentage=17
NoMapUpdateRealismPercentage=0
RealisticSensorsRealismPercentage=11
DudTorpedoesRealismPercentage=8
RealisticReloadRealismPercentage=2
NoEventCameraRealismPercentage=1
NoExternalViewRealismPercentage=15
NoStabilizeViewRealismPercentage=1
NoNoiseMeterRealismPercentage=25
NoWeaponOfficerAssistRealismPercentage=15
2. Błąd zawinięcia wielkości mapy nawigacyjnej oraz mapy ataku do szerokości 1024 pikseli.
Uniemożliwia on powiększenie obu map do rozdzielczości powyżej 1024 pikseli w poziomie, czyli do prawidłowej pracy GUI w rozdzielczościach szerokoekranowych (4:3: 1280x1024, 16:9: 1360x768, 1600x900, 1920x1080, 3840x2160 i wszystkich o proporcjach 16:10).
Po naprawie mapa będzie działać prawidłowo we wszystkich podanych wyżej rozdzielczościach.
3. Błąd wspólnego tekstu braku urządzenia oraz doskonałej pogody pod nazwą o numerze 4100 w en_menu.txt ("None" w wersji angielskiej).
Żaden mod nie może rozdzielić tych tekstów.
Po naprawie są rozdzielone do nazwy pod numerem 2800.
4. Bład zbyt małej ilości cyfr dokładności (0 lub 1) w narzędziach mapy nawigacyjnej.
Po naprawie do 3 cyfr.
5. Brak wyświetlania długości i szerokości geograficznej na krawędziach mapy
Po naprawie współrzędne wyświetlają się.
6. Zbyt małą wielkość strzałek narzędzi mapy.
Po naprawie są większe.
7. Generowanie piany morskiej dopiero w czasie sztormu.
Po naprawie od 3 m/s.
-----------------------------------------------------------------------------------------------------------------------------------
Do napraw własnego pliku sh3.exe należy przygotować plik TychoSh3Patch.map.
Ponieważ patch Tycho pracuje tylko na pozbawionych zabezpieczenia Starforce wersjach exe, to najlepiej spatchować SH3.EXE w wersji 1.6B1 od H.Sie lub Stieblera.
Należy zmodyfikować plik TychoSh3Patch.map w WorkFolder na taką zawartość a następnie uruchomić TychoSh3Patch.bat:
-----------------------------------------------------------------------------------------------------------------------------------
sh3.exe
# GWX3+ Fixpack 1.0 Olamagato - 4K map resolution + coordinates + equipment/weather fix + hydrophones/sonars swap fix, colors unchanged
#
@@@ Long/Lat degrees label, digits:
#
@@ Long digits, color
000A6A62: ee ff
000A6A63: 00 bf
000A6A64: 00 1c
000A6A65: 00 1c
@@ Long digits coordinate, float
000A6A6E: 00 00
000A6A6F: 00 00
000A6A70: 40 f0
000A6A71: 41 41
@@ Lat digits, color
000A6B9D: ee ff
000A6B9E: 00 1c
000A6B9F: 00 1c
000A6BA0: 00 bf
@@ Lat, setting up
000A6BA2: 06 09
@@ Lat digits coordinate, float
000A6BAE: 00 00
000A6BAF: 00 00
000A6BB0: a0 7c
000A6BB1: 41 42
#
#
@@@ Map tools, number of decimal digits:
#
@@ ruler, start digits
000AB9EE: 01 01
@@ ruler, scale-rhombs distance digits
000ABA94: 01 02
@@ ruler, final distance digits
000ABAF5: 01 03
@@ compass, distance digits
000ABE4B: 01 03
@@ protractor, degrees digits
000AC2D0: 00 01
#
@@@ Sizes of begin/end - mark/arrow of the tools, pixels from center, float:
#
@@ marker mark size
000AA5EC: 00 00
000AA5ED: 00 00
000AA5EE: 00 00
000AA5EF: 41 41
@@ ruler marks size
000AA77D: 00 00
000AA77E: 00 00
000AA77F: a0 c0
000AA780: 40 40
@@ compass mark and arrow size
000AA7CD: 00 00
000AA7CE: 00 00
000AA7CF: a0 c0
000AA7D0: 40 40
@@ protractor arrows size
000AA92D: 00 00
000AA92E: 00 00
000AA92F: 40 20
000AA930: 41 41
@@ course flag size
000ACECB: 00 00
000ACECC: 00 00
000ACECD: 00 40
000ACECE: 41 41
@@ course flag pole size
000ACED2: 00 00
000ACED3: 00 00
000ACED4: 40 80
000ACED5: 41 41
#
#
@@@ Expand Nav and Attack maps render limit, from 1024x1024 to 4096x4096 - GWX Fixpack 1.0 - Olamagato
@@
000A8E75: 00 00
000A8E76: 04 10
000A8E77: 00 00
000A8E78: 00 00
@@
000A8E7A: 00 00
000A8E7B: 04 10
000A8E7C: 00 00
000A8E7D: 00 00
@@
00109003: 00 00
00109004: 04 10
00109005: 00 00
00109006: 00 00
@@
00109008: 00 00
00109009: 04 10
0010900A: 00 00
0010900B: 00 00
@@
#00739E4: 04 00
#
@@@ Sea foam from 3.0 m/s wind, float:
@@
0010511A: 00 00
0010511B: 00 00
0010511C: 10 40
0010511D: 41 40
#
#
@@@ Fixed intersection between upgrade page, equip option "none" and weather report, fog state "none". Change the equip option "none" from string "4100=" to string "2800=" in en_menu.txt.
0005E330: 04 F0
0005E331: 10 0A
0005E332: 00 00
0005E333: 00 00
@
000621B0: 04 F0
000621B1: 10 0A
000621B2: 00 00
000621B3: 00 00
@@@ Fixed Hydrophones (H01 Node) and Sonars (N01 Node) hardcode swap bug - GWX Fixpack 1.0 - Olamagato
@@
001209A0: 4E 48
001209A8: 48 4E
@@@ a.g. mouse sensitivity patch, float:
@@ Choose and uncomment desired sensitivity.
#
@@ 2X slower
0011DAA4: 0e 0e
0011DAA5: 74 74
0011DAA6: da 5a
0011DAA7: 3a 3a
----------------------------------------------------------------------------------------------------------------------------------
1. Błąd zamiany sonarów i hydrofonów.
Powoduje, że eskortowce namierzają u-boota przy pomocy super sonaru o zasięgu hydrofonu skanującym w poziomie w zakresie -135..+135 stopni od dziobu (czyli za wyjątkiem tylnej półstrefy) a w pionie od 90 do 170 stopni. W tej strefie pojawia się słyszalny ping oraz komunikat o namierzaniu okrętu. Jednocześnie rolę hydrofonu przyjmuje wcześniejszy sonar skanujący wyłącznie w przedniej półstrefie -45...+45 stopni w poziomie i 90...100 stopni w pionie - czyli wąsko i płytko od dziobu.
Efekty błędu są takie, że gdy niszczyciel jest bokiem lub częściowo tyłem, to okręt zostanie wykryty niezależnie od cichego biegu, głębokości i prędkości śrub. Natomiast w przedniej półstrefie w zakresie prędkości peryskopowej i wykrywany jest dodatkowo hałas własny. Nie ma on jednak znaczenia ponieważ super sonar wykryje u-boota wcześniej niż pomylony hydrofon.
Po naprawie hydrofon staje się hydrofonem skanującym hałas wokół niszczyciela na dystansie do 7 km, a sonar z powrotem sonarem pracującym w przedniej strefie niszczyciela na dystansie do 2 km i pingującym tylko po znalezieniu się u-boota przed eskortowcem.
Technicznie przyczyną błędu jest pomyłka rozmieszczenia tablicy nazw węzłów w kodzie źródłowym:
Błędna:
char[] nodes = { "TAR", "ALB", "BLD", "C01", "R01", "N01", "H02", "H01" };
Prawidłowa:
char[] nodes = { "TAR", "ALB", "BLD", "C01", "R01", "H01", "H02", "N01"};
Początek tablicy w kodzie maszynowym SH3.EXE (pozbawionej Starforce - wersja 1.4 H.Sie) zaczyna się od adresu 0x12098C.
Dodatkowo można zmodyfikować sekcje hydrofonu i sonaru w pliku data\cfg\sim.cfg na następujące ponieważ po naprawie hydrofon i sonar są zbyt mało czułe:
--------------------------------------------------------------
[Hydrophone]
Detection time=1 ;[s]
Sensitivity=0.007 ;(0..1)
Height factor=0 ;[m]
Waves factor=0 ;[>=0]
Speed factor=25 ;[kt]
Noise factor=0.2 ;[>=0]
[Sonar]
Detection time=1 ;[s]
Sensitivity=0.001 ;(0..1)
Waves factor=0 ;[>=0]
Speed factor=31 ;[kt]
Enemy surface factor=25 ;[m2]
Lose time=120 ;[s]
---------------------------------------------------------------
Dodatkowo można zmodyfikować sekcję data\cfg\GamePlaySettings.ini, aby naliczana była prawidłowa ilość punktów reputacji w zależności od stopnia realizmu :
[RealismPercentage]
LimitedBatteriesRealismPercentage=3
LimitedCompressedAirRealismPercentage=1
LimitedO2RealismPercentage=2
LimitedFuelRealismPercentage=1
RealisticVulnerabilityRealismPercentage=2
RealisticRepairTimeRealismPercentage=2
RealisticShipSinkingTimeRealismPercentage=1
ManualTargetingSystemRealismPercentage=17
NoMapUpdateRealismPercentage=0
RealisticSensorsRealismPercentage=11
DudTorpedoesRealismPercentage=8
RealisticReloadRealismPercentage=2
NoEventCameraRealismPercentage=1
NoExternalViewRealismPercentage=15
NoStabilizeViewRealismPercentage=1
NoNoiseMeterRealismPercentage=25
NoWeaponOfficerAssistRealismPercentage=15
2. Błąd zawinięcia wielkości mapy nawigacyjnej oraz mapy ataku do szerokości 1024 pikseli.
Uniemożliwia on powiększenie obu map do rozdzielczości powyżej 1024 pikseli w poziomie, czyli do prawidłowej pracy GUI w rozdzielczościach szerokoekranowych (4:3: 1280x1024, 16:9: 1360x768, 1600x900, 1920x1080, 3840x2160 i wszystkich o proporcjach 16:10).
Po naprawie mapa będzie działać prawidłowo we wszystkich podanych wyżej rozdzielczościach.
3. Błąd wspólnego tekstu braku urządzenia oraz doskonałej pogody pod nazwą o numerze 4100 w en_menu.txt ("None" w wersji angielskiej).
Żaden mod nie może rozdzielić tych tekstów.
Po naprawie są rozdzielone do nazwy pod numerem 2800.
4. Bład zbyt małej ilości cyfr dokładności (0 lub 1) w narzędziach mapy nawigacyjnej.
Po naprawie do 3 cyfr.
5. Brak wyświetlania długości i szerokości geograficznej na krawędziach mapy
Po naprawie współrzędne wyświetlają się.
6. Zbyt małą wielkość strzałek narzędzi mapy.
Po naprawie są większe.
7. Generowanie piany morskiej dopiero w czasie sztormu.
Po naprawie od 3 m/s.
-----------------------------------------------------------------------------------------------------------------------------------
Do napraw własnego pliku sh3.exe należy przygotować plik TychoSh3Patch.map.
Ponieważ patch Tycho pracuje tylko na pozbawionych zabezpieczenia Starforce wersjach exe, to najlepiej spatchować SH3.EXE w wersji 1.6B1 od H.Sie lub Stieblera.
Należy zmodyfikować plik TychoSh3Patch.map w WorkFolder na taką zawartość a następnie uruchomić TychoSh3Patch.bat:
-----------------------------------------------------------------------------------------------------------------------------------
sh3.exe
# GWX3+ Fixpack 1.0 Olamagato - 4K map resolution + coordinates + equipment/weather fix + hydrophones/sonars swap fix, colors unchanged
#
@@@ Long/Lat degrees label, digits:
#
@@ Long digits, color
000A6A62: ee ff
000A6A63: 00 bf
000A6A64: 00 1c
000A6A65: 00 1c
@@ Long digits coordinate, float
000A6A6E: 00 00
000A6A6F: 00 00
000A6A70: 40 f0
000A6A71: 41 41
@@ Lat digits, color
000A6B9D: ee ff
000A6B9E: 00 1c
000A6B9F: 00 1c
000A6BA0: 00 bf
@@ Lat, setting up
000A6BA2: 06 09
@@ Lat digits coordinate, float
000A6BAE: 00 00
000A6BAF: 00 00
000A6BB0: a0 7c
000A6BB1: 41 42
#
#
@@@ Map tools, number of decimal digits:
#
@@ ruler, start digits
000AB9EE: 01 01
@@ ruler, scale-rhombs distance digits
000ABA94: 01 02
@@ ruler, final distance digits
000ABAF5: 01 03
@@ compass, distance digits
000ABE4B: 01 03
@@ protractor, degrees digits
000AC2D0: 00 01
#
@@@ Sizes of begin/end - mark/arrow of the tools, pixels from center, float:
#
@@ marker mark size
000AA5EC: 00 00
000AA5ED: 00 00
000AA5EE: 00 00
000AA5EF: 41 41
@@ ruler marks size
000AA77D: 00 00
000AA77E: 00 00
000AA77F: a0 c0
000AA780: 40 40
@@ compass mark and arrow size
000AA7CD: 00 00
000AA7CE: 00 00
000AA7CF: a0 c0
000AA7D0: 40 40
@@ protractor arrows size
000AA92D: 00 00
000AA92E: 00 00
000AA92F: 40 20
000AA930: 41 41
@@ course flag size
000ACECB: 00 00
000ACECC: 00 00
000ACECD: 00 40
000ACECE: 41 41
@@ course flag pole size
000ACED2: 00 00
000ACED3: 00 00
000ACED4: 40 80
000ACED5: 41 41
#
#
@@@ Expand Nav and Attack maps render limit, from 1024x1024 to 4096x4096 - GWX Fixpack 1.0 - Olamagato
@@
000A8E75: 00 00
000A8E76: 04 10
000A8E77: 00 00
000A8E78: 00 00
@@
000A8E7A: 00 00
000A8E7B: 04 10
000A8E7C: 00 00
000A8E7D: 00 00
@@
00109003: 00 00
00109004: 04 10
00109005: 00 00
00109006: 00 00
@@
00109008: 00 00
00109009: 04 10
0010900A: 00 00
0010900B: 00 00
@@
#00739E4: 04 00
#
@@@ Sea foam from 3.0 m/s wind, float:
@@
0010511A: 00 00
0010511B: 00 00
0010511C: 10 40
0010511D: 41 40
#
#
@@@ Fixed intersection between upgrade page, equip option "none" and weather report, fog state "none". Change the equip option "none" from string "4100=" to string "2800=" in en_menu.txt.
0005E330: 04 F0
0005E331: 10 0A
0005E332: 00 00
0005E333: 00 00
@
000621B0: 04 F0
000621B1: 10 0A
000621B2: 00 00
000621B3: 00 00
@@@ Fixed Hydrophones (H01 Node) and Sonars (N01 Node) hardcode swap bug - GWX Fixpack 1.0 - Olamagato
@@
001209A0: 4E 48
001209A8: 48 4E
@@@ a.g. mouse sensitivity patch, float:
@@ Choose and uncomment desired sensitivity.
#
@@ 2X slower
0011DAA4: 0e 0e
0011DAA5: 74 74
0011DAA6: da 5a
0011DAA7: 3a 3a
----------------------------------------------------------------------------------------------------------------------------------