SoA Source Code - Bugfixes

    • Offizieller Beitrag

    It's normal that you see your clothing which was already weared in savegame. Put something off and go through the portal

    ->reinit your character


    First picture should be the spell frost.

  • I am closing in on the Casting issue - some of the cast do handle effects incorrectly they seem to be freed prematurely.


    And the two images tell me that the effect/graphic is wrong for the spell frost?

    And the second? I think the the rendering of the border figure is correct - but I have to try what you are trying to tell me - from the picture I see no issue - probably reading it wrong. Now I get it :) - no re-initialing of the character.

    • Offizieller Beitrag

    Only the first picture. The picture below is made with DTMain1.exe. This Works!


    Second shows, that I'm wearing a lot of gear but you can see that nothing is rendered on my char, after I load a new map and took something of. If I don't change anything in my inventory (loaded from a savegame) my gear is rendered correctly.

  • Yes so I see what you mean - and the bug is not as I thought: premature free of resources - they seems not to be loaded - it is not the effect it is the projectile that is missing - sorry for being a bit slow, but as said I have not played the game that much - so I do not always know what I am expected to see. Well now I have a bit to work on.

  • I got around to look at the 2 bugs today, fixed pushed and new created. So spells and clothing (also border figure) is working.


    Cause: On demand resources where not loaded.


    Tested on English and German chapter 1-6 installations that were Blackstar updated or SoAmigis v0.7 patched.


    HD might be working, but the Blackstar intro might break it - not sure if I will fix that.


    Rucksacksepp - the on-demand loading on some graphics is that still beneficial on today's HW?

    • Offizieller Beitrag

    OK.

    I tested my version from AoA with the Blackstar Intro in all 3 resolutions. Everything worked.

    Another important thing about the intro. There is an opening movie. It's a .bik file which has the resolution 800x600 played by binkplay.exe. There would be no problems at all except that we need a newer version of binkplay.exe on modern PCs because the old one doesn't work properly. So question is if we should drop the opening movie function.


    I don't know if we need the on-demand function on modern Hardware. But aren't the spells already loaded when the application is loaded?

  • It is not the intro movie as such - but was there an option to disable? I am not at computer, but I remember it as the movie code being in the project file.


    I tested on clean new installs with upgrade or SoAmigos patch. And then just copied siege.exe and ddraw.dll over. So UAC did apply since in "Program Files", and I tried it once in HD were it worked fine, and once in FullHD were it seemed that DX could not change resolution after bink movie - so I thought I would not bother right now. In a better world bink player should go.


    I did not replace any resources files in the games.


    Seems the effects, and trails and some clothing is on demand. The second parameter on the LoadResource and LoadArtResource. These are then cleared on a new map - I think - did not go into details. But it does make sense on older HW, but a bit more file I/O, little compared to all the other pox files - but the file is read at least twice. My guess is that they realized that it was a bad idea, so they just put them into bigger .ag files for HeroX.


    Btw. What version of Delphi are you currently using? The on demand bug, was something I introduced when migrating the code to post-2009 Delphi :bang:

    • Offizieller Beitrag

    Siege.ini ->"Showintro=false/true". If there is an existing opening video defined, the video will be played. The Code is from Siege.dpr.


    Well, I think the SoA Intro with Blackstarpicture is enough. :happy:


    I often encountered a problem when there are to much and/or to large SpriteObjects on screen. ->Lagging

    So I don't know if it will work fine without ondemand function.


    I haven't changed anything in the code for 1.5 years. So I'm still using the old one (4).

  • Just played a bit in HD on DE and EN versions, they work fine. Apparently my FullHD is broken when siege.exe is used as replacement. FullHD has been working fine on the opensource repos assets - unless I broke something 😊 will check during the week.

  • I have tested the HD vs FullHD when just coping siege.exe and ddraw.dll into the installed game on 2 laptops - and HD worked on both - but FullHD only on 1. It turned out that that old laptop can not run that a high resolution - so I will put a check in - so that it can't be selected.


    Did do some heavy spring cleaning in my repo, which make it easier for me to test on various assets - and also keeps it cleaner by removing was is not really belonging to the engine.


    The assets are found together with the released binaries.

    • Offizieller Beitrag

    I tested the new version a lil bit. The old XRef.db does work correctly now.

    Some bugs, I've found:

    Now we have indeed winter, so the character needs boots, too.... No boots in Newcharacter menu. When a map is loaded the character has boots. So, could be that part:

    Code
    //          if Assigned( Player.Equipment[ slBoot ] ) and
    //            Assigned( Player.Equipment[ slBoot ].Resource ) and
    //            Assigned( TLayerResource( Player.Equipment[ slBoot ].Resource ).RLE ) then
    //            TLayerResource( Player.Equipment[ slBoot ].Resource ).RLE.Draw( Frame, 0, 0, @Bits );

    When an enemy sees me, I get this error message:

    14:42:25 00000163: Character.Perceptible Access violation at address 00B2FB74 in module 'Siege.exe'. Read of address 00000073

  • Thanks - you are correct - apparently did I commented out the boots a year ago - can't remember why. They are back in the next build/push.


    It seems I am not able to reproduce the Perceptible bug - I did try with your Kundschafter save game in SD - and let the guys beat me up. So I need a bit more detail.


    The error message could indicate that since the address is so small that it indicates that the pointer to an object is nil. So something might not be loaded or it was premature freed.


    It seems that there sometimes is an issue with the Character effect handling - you will not notice in game - but it is shown in the log. But I can not reproduce it on purpose.


    But in general the housekeeping of the lists are not good. Will take a look.

    • Offizieller Beitrag

    Soon as they see me. He doesn't need to attack me. For every Character I get one error message in the log file (always the same adress)


    Ah, tested it again with DTMain1.exe. Same result. Happened with Krieger after going through the portal to the swamp and get detected.

    So no need to take a look.

  • I did find that effects might have an issue, fixed that.


    Thanks for comparing and explaining. I will look at it, also want to fix old DTMain bugs. But since the released code it not identical to what is in DTMain, I will try and fix as we find then.


    I am currently having a look at the items.db


    Found and fixed some issues - too many naked Elfs in the woods - updated XREF.db documentation.


    And some of the noise from the log - generated by Effects and CheckCache.