View Single Post
Old 01-10-11, 07:08 AM   #869
Stiebler
Fuel Supplier
 
Stiebler's Avatar
 
Join Date: Oct 2005
Location: London, UK
Posts: 1,237
Downloads: 29
Uploads: 4


Default Cause of Crash Dive Blues discovered.

@H.sie:
Yippee!! The *cause* of the ‘Crash-Dive Blues’ is solved!!

If you restore the value for the quick-dive tank at xxxxx1A0 (see my earlier post#866 http://www.subsim.com/radioroom/show...&postcount=866) to 0.5000 after an interrupted crash-dive, then the U-boat regains full operational stability at slow speeds and at high speeds.

Specifically, if the crash-dive is set to 80 metres (default), but you change the depth setting to 40 metres as soon as the U-boat is underwater, then the U-boat descends to 40 metres with xxxxx1A0 variable still set to 1.0000 (should be 0.5000 if the crash-dive had completed). If you now set the speed to standard, the U-boat maintains its depth. If you set the speed to slow ahead, the U-boat sinks slowly.

If we now change manually the xxxxx1A0 variable to a value of 0.5000, the U-boat maintains its depth at 40 metres. If it has sunk already to 50 metres, it returns to 40 metres and levels out.

I discovered something else. The quick-dive tank ‘empties’ quite quickly as you crash-dive, so a crash-dive interrupted at 60 metres has variable xxxxx1A0 set to a value of about 0.65 (not still at 1.0000). When this happens, the U-boat sinks more slowly at slow speed than it sinks when interrupted at 40 metres.

These tests done with a crash-dive (‘C’-key) from surface, at TC = 1, using a IXC boat. ‘Interrupted crash dive at nn metres’ means: ‘As soon as the U-boat is below the surface, click on the dive gauge at nn metres’ (where ‘nn’ = 40 or 60 in the examples above).

One irritating problem: I thought that the variables described here and in my last post would be constant in their last three digits. They are not. I had to work them all out again for these new tests.

So how do we fix the ‘Crash Dive Blues’ by setting the quick-tank to 0.5 after an interrupted crash-dive? One solution would be to set it to 0.5 when the hydroplanes are about zero (say 0 +/- 0.005). However, I think this will be quite difficult to code, since, once the U-boat has ended its interrupted crash dive (and is steady at high underwater speed, or is sinking at slow underwater speed), the calls in code to Sh3Sim.act+0x8527 become much, much less common. Something to think about. Incidentally, most of the variables I mentioned earlier are called from subroutine SH3Sim.act+0xAEB3. The quick-tank variable is called from elsewhere, but intercepted at +0x8527.

Stiebler.
Stiebler is offline   Reply With Quote