Jump to content

BG2 Fixpack v11 Beta 2 Available


Recommended Posts

If you read nothing else in this post, read this:the v11 series is a massive recode and expansion of v10, and as such, is going to be a series of betas. Once we are satisfied with stability and quality, we will resume regular, non-beta releases with v12.

Version 11 Beta 1 of the Baldur's Gate II Fixpack is now available.

 

edit and update: Now it's at Beta 2

I had two very ambitious goals for v11:

Modernization. The Fixpack was started over a decade ago, and a lot of the code shows its age. I used to joke that a rewrite of Fixpack would cut its code to a tenth of its current size--as it turns out, it was only about a half. The upshot is going to be much easier maintenance, a series of very useful macros (CD_EXTEND-O-MATIC could probably write about 90% of a new Spell-50 mod, if anyone's so inclined), a lot more flexibility, faster turnaround for new versions, and a much easier to read (and therefore customize to their preferences) Fixpack for players.

 

Expansion. The advent of the Enhanced Editions has been an absolute boon. Having a full team of developers, QA, and a massive influx of players identified a ton of new material to address. This included a number of bugs that Fixpack thought it fixed but really didn't, identification of more content to restore, and just plain old bugs that had just never been noticed much less fixed. It took a long, long time to go through all of my EE notes but v11 is the result.

 

This is easily the biggest shift in the Fixpack's history and inevitably something, somewhere is going to break. Probably many somethings and many somewheres. Hence, v11 will be a series of betas; the next stable release will be v12. Documentation will take some time, so please be patient while I work through it. As for the version's code name:

 

https://www.youtube.com/watch?v=m8tfuAa1zHU&t=12s

Link to comment

And here is the first bug: With ToBex installed, the beta core fixes fail to install due to a missing file, spcl741d.spl. Debug file attached.

 

Problem seems to start in this block, which creates spcl741d.spl but is skipped if ToBEx is installed:

ACTION_IF NOT FILE_EXISTS_IN_GAME ~tobex_ini/tobexcore.ini~ BEGIN // skip this song and dance if TobEx is present

  // MMM APR fixes; shuffle APR to shell spell for easier blockage (see also spcl521.spl, spcl521d.spl, spcl741.spl, melfmet.itm)
  COPY_EXISTING ~spcl741.spl~ ~override/spcl741d.spl~
    LPF DELETE_EFFECT END // delete all existing effects
    SAY NAME1 #-1
    SAY NAME2 #-1 // erase the name of the secondary spells to prevent feedback duplication
    WRITE_ASCIIT  0x10   ~~  // completion sound
    WRITE_SHORT   0x22  0x00 // casting graphics
    READ_SHORT 0x68 abil_num
    FOR (index = 1 ; index < (abil_num + 1) ; ++index) BEGIN
      LPF ADD_SPELL_EFFECT INT_VAR header = index opcode =   1 target = 1 parameter1 =    1 duration = (54 + (6 * index)) power = 4 resist_dispel = 3 END // +1 apr
      LPF ADD_SPELL_EFFECT INT_VAR header = index opcode = 206 target = 1 parameter1 = "-1" duration = (54 + (6 * index)) power = 4 resist_dispel = 3 STR_VAR resource = spwi325 END // block MMM
    END
    BUT_ONLY
 

But then further ahead, this block goes and tries to copy spcl741d.spl anyway:

// boon of lathander missing headers
COPY_EXISTING ~spcl741.spl~  ~override~
              ~spcl741d.spl~ ~override~
  LPF CD_MISSING_SPELL_HEADERS INT_VAR first_missing = 2 last_missing = 10 END // adds headers 2-10
  READ_SHORT 0x68 abil_num
  FOR (index = 1 ; index < (abil_num + 1) ; ++index) BEGIN
    LPF ALTER_SPELL_EFFECT INT_VAR silent = 1 check_globals = 0 header_type = 1 header = index duration_high = (index * 6) END // one round/level
  END
  BUT_ONLY

I hotfixed this by adding an IF_EXISTS like so:

// boon of lathander missing headers
COPY_EXISTING ~spcl741.spl~  ~override~
              ~spcl741d.spl~ ~override~
  LPF CD_MISSING_SPELL_HEADERS INT_VAR first_missing = 2 last_missing = 10 END // adds headers 2-10
  READ_SHORT 0x68 abil_num
  FOR (index = 1 ; index < (abil_num + 1) ; ++index) BEGIN
    LPF ALTER_SPELL_EFFECT INT_VAR silent = 1 check_globals = 0 header_type = 1 header = index duration_high = (index * 6) END // one round/level
  END
  IF_EXISTS
  BUT_ONLY
 

But I'm not sure if this the correct permanent solution.

setup-bg2fixpack.debug.gz

Edited by Angel
Link to comment

Nitpicks in the readme.

If the readme is opened in my browser, the browser slider has the name "The Tweaks Anthology".

Spelling:

 

An alternative method is being tested in the beta core fixes that allows the party to charm or use dispel magic on Glacias.

Should be "Glacius"

Link to comment

Send/attach your debug from the BGT installer. I'd be willing to bet it's probably a macro like ALTER_EFFECT without a silent flag trying to fix something that Fixpack now covers. WeiDU can be a bit... overzealous with the warnings.

Link to comment

Alright, so here's the issue from the DEBUG:

Copying and patching 1 file ...
[./override/tele0700.bcs] loaded, 1006 bytes
[bgt/compat/bgt/replace/rtele0700.baf] loaded, 255 bytes
[bgt/compat/bgt/replace/xtele0700.baf] loaded, 591 bytes
WARNING: cannot find block matching [bgt/compat/bgt/replace/rtele0700.baf]
override/tele0700.bcs copied to bgt/backup/0/tele0700.bcs, 1006 bytes
Copied [tele0700.bcs] to [override/tele0700.bcs]

This mismatch is caused by this new fix in Fixpack:

// player can activate CI exit from furnace room
COPY_EXISTING ~tele0700.bcs~ ~override~
  DECOMPILE_AND_PATCH BEGIN
    REPLACE_TEXTUALLY ~Range(LastTrigger,25)~ ~Range(LastTrigger,15)~
  END
  BUT_ONLY

tele0700.bcs is the script for the exit from Chateau Irenicus. You can work your way into the corner of the furnace room, click the exit, and escape, so the range for the trigger was reduced from 25 to 15 feet to prevent this. BGT is trying to swap this block to get in some Imoen-specific scripting, but its replace is no longer matching the now-altered block. They'll probably have to create a copy of rtele0700.baf with the altered range and then try to match against both, and adjust the replacement blocks in xtele0700 with the corrected range.

Link to comment
Problem is, the BGT-weidu won't probably ever be updated. A64 has not been in SHS for a long time(last post, October 2013).

So it's like ALIEN said...

 

EDIT: Now of course, if you(CamDawg) want the responsibility of maintaining the BGT-weidu, I am sure you can discuss it with the Kaeloree and eventually get it. But that's a quite bit to take on.

Edited by Jarno Mikkola
Link to comment

 

Problem is, the BGT-weidu won't probably ever be updated. A64 has not been in SHS for a long time(last post, October 2013).

So it's like ALIEN said...

 

 

Heh, normally I'd be happy to do a little maintenance on a "dead" mod. But BGT? Eh, I wouldn't even know where to start on that one. :-)

 

Well, installing BGT before the fixpack seems to work fine so I guess I'll go that way.

Link to comment
v11 Beta 2 is up. Small changes for the most part:
  • Removed duplicate fix for adding a name to Psionic Blast (was in core and beta core, now just core)
  • SoA-only fix to provide Black Blade of Disaster with Grandmastery was patching in the wrong opcode
  • Shield of the Lost string fix
  • Games with TobEx no longer choke on spcl741d.spl
  • One more inventory fix; this one for ar18prie who was dual-wielding... poorly
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...