SUBSIM Radio Room Forums

SUBSIM Radio Room Forums (https://www.subsim.com/radioroom/index.php)
-   SHIII Mods Workshop (https://www.subsim.com/radioroom/forumdisplay.php?f=195)
-   -   Realism- and gameplay-related hardcode fixes for SH3.EXE (https://www.subsim.com/radioroom/showthread.php?t=174225)

h.sie 12-23-10 04:59 PM

@ridley: yup. every 30 min, from good to bad and back...for testing purposes

Tessa 12-24-10 01:00 PM

Quote:

Originally Posted by h.sie (Post 1559094)
@Tessa: If I start to model chloride/battery damage, I'll try to directly affect crew health values instead of modelling it by exploding mines. To be honest: I fear these changes, because I fear changes are too complex for being fixed in Assembler.

Unfortunately, I don't understand your last question about 4GB patch. But anyway I give you an answer:

1) Make a backup of your original sh3.exe

2) Patch it to V15D

3) Apply 4GB patch.

This should not take longer than 3-7 minutes. If something went wrong, restore original sh3.exe.

h.sie

Hi h.sie

Regarding the 4gb I think I have the info I need. To install this mod correctly it needs an unmodified sh3.exe file? All the changes your mod makes directly changes the sh3.exe file, or does it modify any other files as well? Additionaly, down the road if/when you get the battery gas mod working will you most likely need to repeat the same process used to install the mod now (since I need the 4gb patch which modifies the sh3.exe file, would I then need an unmodified sh3.exe to apply the new mod to)?

Being able to damage the crew directly would be the quickest and easiest way to model the effects; as you point out it will be difficult. After looking at some of the modding/developer tools I didn't see any direct way of doing what needs to be done, I fear that the result may end up in a ctd. Without a direct source of damage to make the crew start loosing health (from the games perspective) for no apparent reason is likely to conflict with controls in place causing a ctd.

If there was a way you could invert the healing function that might be another place to look. Since the batteries are located in the rooms required for an injured crew member to recover health, inverting the function to do the opposite could produce stable results. Upon entering the room instead of beginning to recover you would just start to loose health.

I have very little experience when it comes to assembly code, I know you can pretty much use it to manipulate the machine into doing anything you want it to, even if it violates rules that will cause other problems leading to a core dump/endless loop. The game may continue to run perfectly until that function is needed and then you get an immediate ctd. I fear that is going to be the likely outcome w/o the sdk or a developer that worked on/is familiar with how the game calculates and causes damage to crew members when the ship is damaged from dc's or airplanes.

somedude88 12-24-10 02:42 PM

If it decreases crew efficiency in repair, doesn't it effect all the other compartment efficiency as well?

Also I can't seem to get your mod to work properly, even though I installed the fixes, the integrated orders, WB's renown replacement, damage effects and lifeboat and debris mods don't work...

CherryHarbey 12-25-10 04:29 AM

Quote:

Originally Posted by somedude88 (Post 1560003)
If it decreases crew efficiency in repair, doesn't it effect all the other compartment efficiency as well?

Also I can't seem to get your mod to work properly, even though I installed the fixes, the integrated orders, WB's renown replacement, damage effects and lifeboat and debris mods don't work...

This patch doesn't reduce crew efficiency, it changes the Sh3.exe in order to multiply the repair time by a factor of 60.
It shouldn't cause mod conflicts either, I use the lifeboats, damage effects and integrated orders and this patch without problems.

Have you implemented LRT (Longer repair times) mod? If so then this will cause you problems as it is trying to do similar things to H.Sie patch. You don't need both.

In my opinion H.sie patch (from which you can download from his mediafire site) is the way to go.

If this isn't your issue, then I think you will need to post more details of what exactly you have done and what exactly isn't working.

Hope this helps.

h.sie 12-25-10 10:56 AM

Thanks CH for helping while I celebrate christmas

CherryHarbey 12-25-10 12:11 PM

no problem.
season's greetings.

somedude88 12-25-10 01:07 PM

I got it working, just installed the patches in the wrong order. Thanks!

CherryHarbey 12-25-10 01:08 PM

no problem,
I'm glad you got going.

h.sie 12-27-10 08:13 AM

@Stiebler: I already found the memory addresses where the sub's mass and displacemant are stored after the readin process from NSS_UboatXX.sim file. But changing these variables in-game in the debugger does not change the sub's depth position. So things are a little bit harder than you initially thought.

I think the most important thing is to find out how the current depth of the sub is calculated and so to find out from what parameters it depends.

In Sh3.exe+A1D97 depth is calculated from a value which is taken from the stack. This could be a starting point.

h.sie

Edit: In Sh3Sim.act+30DF5 one can find some interesting code. According to this code the current depth of the Sub is coded in float format and gets more negative when sub is deeper under water, so it's something like a Z-position. if you set it to +10, the sub can fly. Cool. There is also a depth change value dZ. If it's positive, the z-value is rising, otherwise falling.

Sh3Sim.act+30DF5:
fld [esp+30] // Loads depth change value dZ
fadd [esi+b4] // Adds dZ to current Z value, Z := Z + dZ
fstp [esi+b4] // stores new Z-value.

Now I need to know how this depth change value dZ in [esp+30] is calculated.

Silent Ace 12-28-10 10:53 AM

Submarines in World War I remained under water, 50-10% of total time spent on the combat mission.
During World War II, this time increased to 30-35%.
Record time remaining in the submerged condition for WW2 reached the German submarine U-258 (Type 7C) and it is 38 hours.
Other times the length of stay under water a submarine U-744 (Type 7C) and it is 30 hours.
Recall that the 33 surviving crew of 55 on the U.S. Squalus the time of the accident had reserves of oxygen for up to 48 hours but were rescued within 39 hours of the sinking. Link-http://www.lostliners.com/Peril/squalus.html
59 crew members of HMS Thetis had available air for 36 hours stay under water but that the total number of crew and guests on the submarine was 103 men at two times higher than normal, the amount of available oxygen is reduced to only 18 hours. Link-http://www.angelfire.com/co3/submarinethetis/thetis.htm
Apparently the 50 crew members of the Soviet submarine L-271 submerged in theautumn of 1941 in the Baltic Sea survived 50 hours inside their submarine before they were all suffocated .
But on this case does not have enough data.
Time periods of stay under water at the first postwar Soviet submarine project PR.613 Whiskey which is a direct descendant of the German Type 21 is 200 hours with the use of chemical substances (mixture of calcium oxide and sodium hydroxide or lithium hydroxide) for the regeneration air. Link-http://militaryrussia.ru/blog/topic-203.html
If they did not regenerate the air on the USS Pennsylvania (SSBN 735) oxygen would be for 7 days under water.
One man during an hour is in need of 25-28 liters of oxygen and exhales 22-25 liters of CO2.
The content of CO2 in the air section should not be higher than 1-1,5% and O2 can not be less than 18% and not more than 24%.
When these standards in the free space of 2 m3 of a man cut CO2 concentration is reached within one hour.
Conclusion is that you first need to eliminate CO2 from inside the submarine, but need to renew the content of O2 in the atmosphere submarine acceptable 20-21% in order to extend the continuous stay of the crew diesel submarines under the water with the normal 38-48 hours at a respectable 72-80 hours or longer .

Cheers!

B.N.R.T. 12-29-10 07:26 AM

Ok, I've got a perhaps stupid question. I tried searching the thread, but nothing came up. Is the Long Repair Times Mod compatible with GWX? Can I just 'install' it over the GWX .exe file? I'm not sure if that is "unpatched, uncracked, unhacked". Perhaps an edit to the first post for noobish questions like mine?

Delareon 12-29-10 08:20 AM

it is compatible, only incompatibility i know so far are other Longer Repair Time Mods.
So just take your current GWX installation, take the .exe and follow the instructions from the first post.
The tool automatically makes a backup of your previous .exe if anything went wrong or u want to deactivate the mod.

B.N.R.T. 12-29-10 09:20 AM

Great, thanks for the quick answer!:DL

Now, I'll just have to make it make to Lorient to start a new patrol...

h.sie 12-30-10 09:54 AM

No further progress regarding negative buoyancy and silent running/pumps so far.

But I found the code resonsible for reloading external torpedo tubes. As a first attempt I plan to connect the external reloadings with the storm-conditions for deck- and flak gun. that means: the time counter that shows the time remaining for reloading externals, will only decrease, when the storm-conditions are NOT met. otherwise, if storm conditions are met, the time counter

a) could stay unchanged, or better:

b) could be reset to it's initial value, so that the reloading has to be started from the beginning (which also happens when one dives during reloading).

If that works, we can talk about the second part:

Program some penalty when one dives during reloading, but I have to damp down too high expectations regarding this.

h.sie

LGN1 12-30-10 03:41 PM

Quote:

Originally Posted by h.sie (Post 1563259)
No further progress regarding negative buoyancy and silent running/pumps so far.

But I found the code resonsible for reloading external torpedo tubes. As a first attempt I plan to connect the external reloadings with the storm-conditions for deck- and flak gun. that means: the time counter that shows the time remaining for reloading externals, will only decrease, when the storm-conditions are NOT met. otherwise, if storm conditions are met, the time counter

a) could stay unchanged, or better:

b) could be reset to it's initial value, so that the reloading has to be started from the beginning (which also happens when one dives during reloading).

If that works, we can talk about the second part:

Program some penalty when one dives during reloading, but I have to damp down too high expectations regarding this.

h.sie

Hi h.sie,

great work as with the weather-change settings :up: Thanks! Do you think it might be possible to also connect the internal torpedo reloading with the storm condition so that you can only reload internal torpedoes when submerged (in a storm)?

Concerning diving when reloading external torpedoes: It might be a good idea to increase the dive time considerably (via the flooding time in the sim files) when reloading so if you want to dive it takes a long time :hmmm:

Cheers, LGN1


All times are GMT -5. The time now is 06:33 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.