Vinifera-Developers / Vinifera

Vinifera is a C&C: Tiberian Sun engine extension implementing new logics and fixing bugs.
GNU General Public License v3.0
46 stars 10 forks source link

[Vanilla Bug] IonBlastClass crash #21

Open Rampastring opened 3 years ago

Rampastring commented 3 years ago

Description:

As with many other transparent effects (WaveClass and lasers), IonBlastClass causes crashes with DetailLevel=2.

Conditions:

If the user has DetailLevel=2 in SUN.ini, the Ion Cannon shock-wave effect causes the game to crash when fired at the bottom of the screen.

Additional Files:

Fixed in CnCNet ts-patches by forcing the effect to be drawn as if the user had DetailLevel=1 in game settings. https://github.com/CnCNet/ts-patches/blob/master/src/IonBlastClass_crash.asm

CCHyper commented 3 years ago

The current fix for this crash is more of a workaround.

I think more research needs to be done and a real fix produced that retains the intended effects.

  1. Does this happen to all users (ie, is it a modern hardware issue)?
  2. Do certain larger resolutions increase the chance of this happening?
  3. Has any research been done into what causes this crash?
tomsons26 commented 3 years ago

Is there a crash log for this? Looking at the code i see if Lifetime is larger than 80 that's a crash, WW doesn't do a safety check before accessing buffer Looking at 004EE569 it can def occur, again no checks for max while its looping