Jump to content


Insomniator's Content

There have been 122 items by Insomniator (Search limited from 28-April 23)


By content type

See this member's


Sort by                Order  

#612491 So the Infinity Animation update..

Posted by Insomniator on 15 May 2022 - 07:23 AM in Infinity Animations

skellytz,

RESREF override sPrefix for animation BAMs [and soundset 2DA], keep original suffix calculation, injects to most animation type, except:
 
0xxx ignored, non-pc animation
4xxx ignored, non-pc animation
6xxx ignored, original BG2 and BG1 animation
Bxxx ignored, non-pc animation
Dxxx ignored, non-pc animation

RESREF seems to work nicely. You didn't mention it in the exceptions, but the 12xx (dragons) range apparently also doesn't support the resref override? As I said earlier, this range doesn't need resref override, because of buggy implementation, so that was expected. I'm just checking if you intended it to be supported anyways.

12xx is supported but not tested, i dont see any special "care" in 12xx code
 

Some more suggestions:
Now that we can override the footcircle (personal space) size, we could also add FALL_SND to EXTANIM, because the fall sounds (called by GetSndDeath(), eg FAL_01B, FAL_02B, FAL_03B) are hardcoded to animation subranges.

it is possible, each animation has dedicated field for storing FallingSound filename
 

These two aren't very important, but would be useful (details on IESDP):
light_source = boolean
When this attribute is set (=1) then environmental lighting such as day/night, weather or shadows do not affect the creature animation. (bLightSource)

Used for few anims in 73xx(Monster) range
0x7F3B MSOL, use additional GLOW aimation
0x7F3C MASL, use additional GLOW aimation
0x7310 MFIE     ELEMENTAL_FIRE
0x7311 MFIS     ELEMENTAL_FIRE_SMALL
0x7312 MFIE
0x7313 MFIS
0x7314 MFIE

and many effects:
0x0Bxx
0x0C0xx
...
is light_source really usefull ?
 

 detected_by_infravision = boolean
This attribute indicates whether a red tint is applied to the creature when it is spotted by infravision. (bDetectedByInfravision)

OK, if animations supports it variability, many anim types force it to 1(4xxx) or 0(Dxxx)

 

brightest = boolean
This attribute defines a blending mode when the sprite is rendered onto the screen. If set without the "multiply_blend" attribute then GL_ONE_MINUS_DST_COLOR blending is performed. If both "brightest" and "multiply_blend" are set then GL_SRC_COLOR blending is performed. (bBrightest)
multiply_blend = boolean
This attribute defines a blending mode when the sprite is rendered onto the screen. If set without the "brightest" attribute then GL_DST_COLOR blending is performed. If both "brightest" and "multiply_blend" are set then GL_SRC_COLOR blending is performed. (I think this could be bBrightestDesired in the classic engine?)


bBrightest and bBrightestDesired are tricky, each animation has fields for both, but field configured after creating animation in some other place later, need more investigating




#612489 So the Infinity Animation update..

Posted by Insomniator on 14 May 2022 - 08:35 AM in Infinity Animations

Thanks! I'll test everything and report back.


OK, just to remember, RESREF= * and  RESREF_PAPERDOLL= * skip overriding




#612487 So the Infinity Animation update..

Posted by Insomniator on 14 May 2022 - 12:14 AM in Infinity Animations

skellytz,

 

test version (not tested on all animtypes)

1) TobExCore.ini: Externalise Animation Config Override=1 (next TobEx will set it to 1)
2) RESREF overrides sound 2da filename, use ANISNDEX.2DA to override

3) RESREF overrides RESREF_PAPERDOLL, change RESREF_PAPERDOLL if separate prefix need
4) if game crash at 0x9ca8a8, it means it can not found animation BAM files

 

https://anonfiles.co...x_resref_v1_zip




#612485 So the Infinity Animation update..

Posted by Insomniator on 13 May 2022 - 12:21 PM in Infinity Animations

TobEx can simple assume IA animation type remapping for the 5xxx subranges, because the original engine doesn't use the range in practice. I'll double check everything we've discussed so far tonight after work.

I checked bugbear 0x500E on live installation:
1) IA detects 0x5000-0x5479 range, jump to creating 0xExxx animation
2) Constructor of 0xExxx animation (BioWare's original name AnimationTypeMonsterIcewind) was patched, it checks for 0x5000-0x523D range, if YES, load sPrefix from hardcoded array inside .EXE, for 0x500E select "µAO" + set footsize=5. For 0x523D-0x5479 range select same sPrefix, but footsize=3
3) CAnimationE000() continues original code, convert sPrefix to many sub-suffixes for different BAMs/cases:
sPrefix+"A1", A2, A3, A4, Gu, Sl, De, GH, Sd, Sc, Sp, Ca, Tw, Wk +
sPrefix+"A1E", A2E, ..., WkE
 
TobEx injects before step 3) to override sPrefix (same place to inject as on original engine), so Yes, IA already did job to convert initial animID to proper animationtype and no need care about animID mistmatches
 
Finaly TobEx can:
1) RESREF_PAPERDOLL override final sPrefix for BODY paperdoll, ignores any calculation, filename = RESREF_PAPERDOLL + "INV", support any animid range (useless for Human Playable Chars with many *INV BAMs per one animid)
2) RESREF override sPrefix for animation BAMs, keep original suffix calculation, injects to most animation type, except:
 
 

0xxx ignored, non-pc animation
4xxx ignored, non-pc animation

6xxx ignored, original BG2 and BG1 animation
Bxxx ignored, non-pc animation
Dxxx ignored, non-pc animation




#612483 So the Infinity Animation update..

Posted by Insomniator on 13 May 2022 - 03:15 AM in Infinity Animations

5000 - 5478   IWD (replaces all vanilla _LOW character animations) (same type as vanilla Exxx) (examples: ice golem, orc)

547a - 58f3   BG1 SIMPLE MONSTER (same type as vanilla 7xxx BG1 simple monsters) (examples: werewolf, brown bear)

5b00 - 5f78   BGII UNSPLIT EXT. (same type as vanilla 7xxx BG2 unsplit-BAM monsters) (examples: Melissan, death tyrant)

5f7a - 5fff   BGII SPLIT (same type as vanilla 7xxx BG2 split-BAM monsters) (examples: solar, troll)

0x5000 range is problematic, vanilla set it to Playable BG2 Human Chars, shield/armor/weapon prefixes and more fields.

IA hacks and cheats engine to handle animID other way, at same time IA doesn't have patches/injects sources&documentation.

I afraid Tobex needs to cheat IA after cheating original engine, this is not what i want to do.
 




#612482 So the Infinity Animation update..

Posted by Insomniator on 13 May 2022 - 02:46 AM in Infinity Animations

Only 7 ranges for RESREF ?

Give me some more time to put everything together now that I understand how the paperdoll prefixes work. Also, BGEE paperdoll support is finicky at best, so I'll do a few more tests.


In one of my prev post i found mistake

 

each animationID has separate filename calculation algo, 0x5000 example

Group00: anim->sPrefix + anim->cArmorCode + patched fourth char

must be

each animationID has separate filename calculation algo, 0x5000 example

Group00: anim->sPrefixPaperDoll + anim->cArmorCode + patched fourth char

Only 0x5xxx has separate field sPrefixPaperDoll to store paperdoll prefix, only few 0x5xxx rare anims has different main and paperdoll prefix (e.g. 0x5312 CDMB + CDFB / 0x5315 CHFB + COFB). Remains 0x5xxxx anims has same prefix for anim and paperdoll.


 




#612480 So the Infinity Animation update..

Posted by Insomniator on 13 May 2022 - 02:01 AM in Infinity Animations

skellytz

10xx - 11xx   BGI MONSTER LONG 4 PART (examples: big wyvern, tanarri)

13xx          BGII SPLIT 4 PART (examples: demogorgon)

5000 - 5478   IWD (replaces all vanilla _LOW character animations) (same type as vanilla Exxx) (examples: ice golem, orc)

547a - 58f3   BG1 SIMPLE MONSTER (same type as vanilla 7xxx BG1 simple monsters) (examples: werewolf, brown bear)

5b00 - 5f78   BGII UNSPLIT EXT. (same type as vanilla 7xxx BG2 unsplit-BAM monsters) (examples: Melissan, death tyrant)

5f7a - 5fff   BGII SPLIT (same type as vanilla 7xxx BG2 split-BAM monsters) (examples: solar, troll)

a0xx - a1xx   BGI MONSTER LONG (examples: carrior crawler, small wyvern)

Only 7 ranges for RESREF ?




#612479 So the Infinity Animation update..

Posted by Insomniator on 13 May 2022 - 12:56 AM in Infinity Animations



RESREF_PAPERDOLL currently works only for simple animation as RANGE_BODY(Group00), engine just use main prefix as paperdoll prefix
0x5xxx/0x6xxx/0x7xxx and probaly more uses dynamic paperdoll prefix generation depending on armor code or exact animation ID

What's the paperdoll generation code for 7xxx? For example, black bear uses MBER0INV and brown bear MBER1INV. Are the 0 and 1 hardcoded armor levels for these specific animations?

1)

0x7Bx0 Prefix + "0"
0x7Exx "MGWE"
0x7Ax3 Prefix + "3"
0x72x1 Prefix + "1"
0x72x0 Prefix + "0"
0x79x2 Prefix + "2"
 
0x7F0F "MTRO"
0x7310 "MFIE"
0x7302 "MEAE"
 
0x7xxx Prefix (if not special ID above)

 

2) Armor code used in 0x5xxx and 0x6xxx paperdoll prefixes, see http://www.shsforums...e-5#entry612472

 

3) RESREF_PAPERDOLL  must override Prefix before possible calculation or override final value ?

  • 0x7Bx0 Prefix + "0" : RESREF_PAPERDOLL=MTAM, filename will be  MTAM0INV.BAM
  • 0x7B10 Prefix + "0" : RESREF_PAPERDOLL=MTAM, filename will be  MTAMINV.BAM



#612476 So the Infinity Animation update..

Posted by Insomniator on 11 May 2022 - 09:49 AM in Infinity Animations

Hi skellytz, Sam

Even better: externalizing (overriding) the animation resref as well (the prefix for all the animation BAM files). Thanks to that, modders would be claiming offsets in IA, but providing their own animation codes with their modder prefixes, eg "s@01". Conflicts solved and lots of animation slots freed up.

SPEED   SND_FREQ    PERSONAL_SPACE   COLOR_BLOOD   CHUNK_DEATH    RESREF  RESREF_PAPERDOLL0x1103            9       8           3                *             *              s@01    s@01
 
This would instruct the engine to look for s@01xxxx.bam animation files and enable the paperdoll for this animation as s@01INV.bam

Yes, it is possible
 
I made litle test (without IA installed) with 0x1100 TANARRI:

                 SPEED   SND_FREQ    PERSONAL_SPACE  COLOR_BLOOD CHUNK_DEATH RESREF  RESREF_PAPERDOLL
0x1100    *               *                         *                                     *                              *                             MTAM     MWYV

1) Copied 24 files MTANG11.BAM-MTANG34E.BAM as MTAMG11.BAM-MTAMG34E.BAM
2) No animation fails on area screen
3) After joining party, in inventory i see Wyvern paperdoll
 
What about all possible animation ranges for RESREF overriding?

0xxx ignored, non-pc animation
4xxx ignored, non-pc animation
5xxx skip ? (mainPrefix + ArmorLevelPrefix)
6xxx skip ? (mainPrefix + ShadowGroundPrefix(CSHD/SSHD/...))
7F3B MSOL + MSOG(glow ?)
7F3C MSAL + MSAG(glow ?)
Bxxx ignored, non-pc animation
Dxxx ignored, non-pc animation

RESREF_PAPERDOLL currently works only for simple animation as RANGE_BODY(Group00), engine just use main prefix as paperdoll prefix

0x5xxx/0x6xxx/0x7xxx and probaly more uses dynamic paperdoll prefix generation depending on armor code or exact animation ID




#612472 So the Infinity Animation update..

Posted by Insomniator on 10 May 2022 - 03:13 PM in Infinity Animations

Hi skellytz

IA and animation content mods will be installed after TobEx AfterLife but before Infinity Sounds. It would be best if TobEx AfterLife enabled these by default:

 
Externalise Animation Sound Reference Override=1 (currently =0)
Externalise Animation Config Override=1 (currently =0)
 
and copied anisndex.2da and extanim.2da to override (currently they aren't copied and used at all)
 
Those ten BG1 animations already present in anisndex.2da will be silent if Infinity Sounds isn't installed. So, TobEx AfterLife will also have to include and copy their 2DA soundsets:
attachicon.gif2da-soundsets.zip
 
Alternatively, the anisndex.2da could be initially empty (only the header and column descriptions). Infinity Sounds would then append the BG1 animations and provide 2DA soundsets on its own.

 

Your decision, Insominator.

OK, these two options will be enabled by default

Both files will be empty, i can not maintance content-related things. If 3rd party mod adds some to ANISNDEX.2DA like

0x7203 MBER2  BEAR_POLAR

this mod must care MBER2.2DA and its *.wav sounds
 

The animation "Type". I assume this is still needed.
Subtype. Options were paletted|unpaletted|WPL paletted|WPM paletted|WPS paletted|WQL paletted|WQM paletted|WQS paletted. Is this still relevant or has it been externalized?

Insominator, you were kind enough to go through the existing data in the executable and externalize the features that were sort of "on the way" while fixing other things. You also said you wouldn't add any new features to TobEx; bug fixes and conflict-solving only. So, I guess this means the features above can't be externalized without a lot of busy work involving the whole animation system, right? This would essentially mean externalizing the animation system just like BGEE INI.

I dont know about animation BAMs, as i can see WPL/WQL/.. used in 0x5000 animation only. What is "paletted|unpaletted" ?

You asked me about new thing to me, i can not answer without explanation what you request

 

 

Paperdoll. The options were No|Yes. For example, some BG slot types could coexist with IWD slot types with the same prefix, but they shared a paperdoll. If neither used a paperdoll, you got to use both slots. If one needed a paperdoll, it also claimed the other corresponding slot. Is this still relevant or has it/can it be externalized?

What do you think, Insominator? Would it be easy enough to trace animation and paperdoll links in the classics and externalize them to extanim.2da? (resref_paperdoll in BGEE INI for reference) (example animation: werewolf)

each animationID has separate filename calculation algo, 0x5000 example

Group00: anim->sPrefixPaperDoll+ anim->cArmorCode + patched fourth char

Group10: anim->sHeightCode + anim->sWeaponPrefix + patched second char

Group20: anim->sHeightCodeShieldPaperDoll/sHeightCode + anim->sShieldPrefix

Group30: anim->sHeightCode + anim->sHelmPrefix+ patched second char

 

I dont understand how this can be externalized, i need example of "some BG slot types could coexist with IWD slot types with the same prefix, but they shared a paperdoll. If neither used a paperdoll, you got to use both slots"
 




#612457 So the Infinity Animation update..

Posted by Insomniator on 09 May 2022 - 01:14 AM in Infinity Animations

Do we  just assume everyone is using ToBEx and ToBEx Afterlife


In my opinion, if we really want to offer a complete animation toolset, IA should require the prior installation of TobEx AfterLife.

We can have TobEx installed only with one required option. Any TobEx options can be disabled except Externalise Animation Sound Reference Override or any other.sound option. With all options disabled, TobEx has no impact on engine, only has separate console window




#612443 TobEx AfterLife

Posted by Insomniator on 07 May 2022 - 09:23 AM in ToBEx

Apologies, the latest file you posted is no longer available. Could you upload it again? I'll see if I can download it later today before I leave town.


https://ufile.io/ubofk97t




#612441 Cod when creating a new game modded by tobex

Posted by Insomniator on 07 May 2022 - 04:44 AM in ToBEx

Hi jacklhoward

hi. i need some help. i installed tobex with some mods. my mod order:

bgt
tobex
bg2fixpack
1pp
bg1unfinished business
unfinished business
tweak anthology
bgt bgm
wide screen
the bigg biffing i reinstalled tobex since some of the options dependent on it was bugged out.  When i try to create a new bg1 game in bgt, an error message shows up

[Sat 07 May 2022 19:49:21] ASSERTION FAILED! Return Address: 0x9F5B37 File: ChVidPal.cpp Line: 1415 Expression: m_pPalette != NULL Message: (null)


From your list of mods, 1pp is most possible troublemaker with pallete




#612437 BG2 Improved GUI

Posted by Insomniator on 05 May 2022 - 10:41 AM in BG2 Improved GUI

Hi MikeX,

I still think the 'Hxxx' parameter could be fix (independent of the desired width), only dependent on which of the mod provided mos needs to be used and extended.
 
Do you have any insight about how 'Extend_Mos' works, especially the 'Hxxx' ('Vxxx') parameter?
The WeiDU readme says the command needs to be documented...
I know the number xxx is the position at which some area of the mos is duplicated.
The duplicated area is the one after the position, but to what widht/height?
Also the inserted duplicated area seems to be split in between.

I can not tell how Hxxx works, i just tried different numbers to see on what horizontal pixel doublicating was started.
Fortunately for contaner background one xxx parameter give proper start X coord and widht to shift
 
Weidu sources available, but OCAML is difficult to understand

Spoiler




#612431 TobEx AfterLife

Posted by Insomniator on 04 May 2022 - 06:13 AM in ToBEx

All of a sudden I realize I am not so sure about something so I'd like for you to confirm what I believe. Before installing ToBEx Afterlife the user needs to install ToBEx v26 or v 28, correct?

Yes, i updated first post to clarify


 




#612430 BG2 Improved GUI

Posted by Insomniator on 04 May 2022 - 05:39 AM in BG2 Improved GUI

MikeX, fixed version:

  • .MOS renaming removed
  • tutugui enlarge position fixed

Attached Files




#612427 BG2 Improved GUI

Posted by Insomniator on 04 May 2022 - 01:15 AM in BG2 Improved GUI

Hi MikeX
 

'lootpanel.tph' has still an issue using the right mos for patching (at least for my resolution and 'Restored x2 Scaled GUI'), see attached ingame screenshot in Baldr005.bmp.
I fixed it locally, but have to run more tests on different resolutions.
Basically, I read which mos is used in the chu and patch the expanded mos with the same name that your mod provides.
Your mod provides expanded mos for the base game and 2 GUI mods (TutuGUI and GUI_720).
I attached my current version (and an ingame screenhot in Baldr004.bmp), if you want to have a look.
I will be back with more test results and probably more questions.

To solve this issue, my installer must track how .MOS was enlarged by widescreen (H*** parameter) or how cells/gold was shifted.
Main problem - i think widescreen try to "center" right cells on some resolution conditions, for 940x540 it take 640x480 base image and enlarge it to 960x90 with inserting free space in CENTER, so inventory cells shifted to right border, then it shifts cells's X and Gold's coordinates by patching .CHU


If i set 940x600 resolution, it stops shifting and use 800x600 base image. It has complicated logic to when shifts and when not for same X Resolution
 
Also Widescreen's enlarging 640x90 ->960x90  has artifacts:
w960x540.JPG

 

Widescreen's enlarging 800x90 ->960x90 without shifting:

960x600.jpg

 




#612426 BG2 Improved GUI

Posted by Insomniator on 04 May 2022 - 12:27 AM in BG2 Improved GUI

Hi Salk

Great!


https://anonfiles.co...0c3ye/TobEx_zip

 

add new UI:Damage Info On Record Screen=1 to installed TobExTweak.ini

 

i have additional installer option to install only on record screen, but manualy editing TobExTweak.ini is enough




#612423 BG2 Improved GUI

Posted by Insomniator on 03 May 2022 - 05:30 AM in BG2 Improved GUI

Hi Salk
 

@1056910 =  ~Off Hand Damage: (Approx: )Off Hand THAC0~
@1056911 =  ~Main Hand Damage: (Approx: )Main Hand THAC0~

OHD/AOHD/... useless because you cannot calc these vars in scripts
 
Engine uses printf() style to append many lines to one multi-line TextArea text object:

v275 += cds_temp3->baseclass.hitBonus;

 

v13 = cdsCurrent->baseclass.THAC0;

 

v14 = CBaldurEngine::FetchString((IECString)&v235, 61932).m_pchData;

 

CBaldurEngine::UpdateText((int)Screen, (int)TextArea, (char *)"%s: %d", *v14, v13);

one hand weapon:
v19 = cdsCurrent->baseclass.THAC0 - cdsCurrent->baseclass.toHitBonusRight - v275;

 

v20 = CBaldurEngine::FetchString((IECString)&v232, 9457).m_pchData;

 

CBaldurEngine::UpdateText((int)Screen, (int)TextArea, (char *)"%s: %d", *v20, v19);

@61932 = ~Base THAC0~
@9457  = ~THAC0~
 
p.s.
OK, i will add thac/damage numbers to Record screen




#612422 BG2 Improved GUI

Posted by Insomniator on 03 May 2022 - 05:15 AM in BG2 Improved GUI

Hi MikeX

Widescreen mod installed with 960x540 resolution, screen resolution 1920x1080:
https://imgur.com/a/QbJqrxh
As I said the mod patches the wrong mos for what comes out after widescreen mod (GMPWSG8.mos instead of GUICONTB.mos).
I fixed it (read which mos is used and copy/patch that one):
https://imgur.com/a/5qX19CN
See the wrong height.
 
Scroll buttons:
https://imgur.com/a/tOSC1jx
They should appear, if more the 14 items are available, right now they only appear, if more than 21 are available.

pre-v5.2 https://anonfiles.co...vedgui_v5.2_zip
Installer and buttons fixed, needs reinstall mod
Please report back if something still bugged

 

Ok, function is ok, only print command still has the wrong mos file.

Thanks, pre-5.2 still has wrong installer output, will be fixed in public release




#612416 BG2 Improved GUI

Posted by Insomniator on 02 May 2022 - 05:06 AM in BG2 Improved GUI

Hi MikeX

 

I especially like the 'Restored x2 Scaled GUI' components. For me, this is the best option to play the game on my 1920x1080 monitor.

Unfortunately, it does not play seemlessly with the new loot panel of this mod.

Regarding the chu and mos files changes, Widescreen mod treats the smaller resolution we have to use (960x540) differently than your mod expects it.

It takes the chu file that fits inside both the x and the y resolution (which in my case is guiw.chu for 640x480), copies it to guiw10.chu and than scales this and the attached mos files up.

I temporarily changed lootpanel.tbh to my needs to take care of it. In the end, I think, it may need to be installed after component 2400 to detect its presence and act accordingly.

 

Two issues remain, if component 2400 is installed, that, I think, needs to be addressed via TobEx:

-the height of the window for the new lootpanel is some pixels too small

-the scroll button for the loot slots show up too late.

 In my case, I have 14 slots, but the button only show up, if the number of loot items is bigger than 21

Screenshot with issue is welcome :)

Yes, Widescreen mod converts any resolution to patched guiw10.chu, my installer must work with this properly

 

And one question:

The readme states something about a 'one click action to collect all available loot'. Is there a button to click on for this (like with the EE) and if yes which and where ist it?

There is no additional button, it this mode item stacks from all corpses.

 

Example:  corpse1 has Gold=1, corpse2 has Gold=2

Normal mode: shows TWO Gold buttons, count =1 and =2, if corpse1 has another items, second gold button will be after all coprpse1's items

Group mode: shows ONE Gold button, count=3

 

I think v5.1 misses the issue from post #275/6.

v5.1 has fixed GUIMAPWX

probably you have different issue with wordmap




#612415 BG2 Improved GUI

Posted by Insomniator on 02 May 2022 - 04:52 AM in BG2 Improved GUI

Hi Salk

I love component 5 (THAC0 and Damage info on Inventory screen) but I am also a user of TuTuGUI and I read that they are not compatible. I was wondering if there was anything that could be done to just have the THAC0 and Damage info displayed in the TuTuGUI character record screen instead, the way SimDing0's Virtue did?

Basicaly is compatible with any GUI, the problem is that it is difficult for me to redraw the graphics while maintaining the original style. That's why background image already has 3 style variants.

 

If someone adds additional rectangles for THAC0 and Damage of both hands to the TutuGUI inventory screen keeping "BG1" style,  I will enable this component for this screen.