A pearl to you

“Greetings, good customer. A pearl to you.”

—BG2EE: StrRef 38848: FEMER01.WAV

Whilst extracting debug symbol information located in .pdb files and from debugging the IE or EE game executables (using IDA, x64dbg, llvm-pdbutil and other tools), sometimes we come across comments, field names, function parameters or other oddities that make us laugh and wonder as to their origin and the story behind them.

Some of these pearls of wisdom, gems of insight and nuggets of knowledge are highlighted here, along with some observations or thoughts on each “pearl”.

Enjoy.

Jeremy is an idiot

Located at offset 0x48 of the CGameEffectBase structure is a field called m_JeremyIsAnIdiot

Who is Jeremy? In the credits there is a Jeremy Sheldon, is this the same person? what did he do that immortalized his name into a field of a game structure?

../_images/jeremyisanidiot.png ../_images/jeremyisanidiotisntmagical.png

Source: Baldurs Gate II: Enhanced Edition - Baldur.pdb

See jake about this

Located on line 166 of Triggers.ids of IWD2 is a parameter called SeeJakeAboutThis

0x40C6 NearbyDialog(S:DialogFileName*,I:SeeJakeAboutThis*)

I guess no one got round to seeing Jake about it then

../_images/seejakeaboutthis.png

Source: Icewind Dale II - Triggers.ids

Cheaty McCheaterson

The CScreenCreateChar class has a method named CScreenCreateChar::OnCheatyMcCheaterson

The lesser known cousin of Boaty McBoatyFace

../_images/mccheaterson.png

Source: Baldurs Gate II: Enhanced Edition - Baldur.pdb

Try again Greg?

Located at offset 0x340C of the CGameSprite structure is a field named m_nGregsRetryCounter

../_images/wonderwhogregis.png

Source: Baldurs Gate II: Enhanced Edition - Baldur.pdb

SOD is a nuisance!

An unused string reference or developer comment referenced at offset 0x0067CB5F for the memory address 0x008A2D6C in the BG2EE game executable, shows what the developers really thought about the hard coded SOD dialog popup, and they subsequently created a work around to never show it.

0067CB5F | 68 6C2D8A00 | push <baldur.??_C@_0BI@IKJJJJMJ@Never?5Show?5Nuisance?5SOD?$AA@>

Part of the push instruction 6C2D8A00 refers to memory address 0x008A2D6C, at which is located:

008A2D6C:"Never Show Nuisance SOD"
../_images/nuisancesod.png

Source: Baldurs Gate II: Enhanced Edition - Baldur.pdb

Its just plain stupid

Located at offset 0x90 of the CGameOptions structure is a field named m_bStupidQuickItemStuff

Located at offset 0x2C of the CScreenWorld structure is a field named m_nStupidMovieWait

../_images/stupid.png

Source: Baldurs Gate II: Enhanced Edition - Baldur.pdb

The master area?

A push instruction at offset 0x0044FE90 referencing a memory address at 0x008A7F90 in the IWD2 game executable, shows an interesting string:

0044FE90 | 68 907F8A00 | push iwd2.8A7F90

Part of the push instruction 907F8A00 refers to memory address 0x008A7F90, at which is located:

008A7F90:": That's no master area, that's my wife!"
../_images/thatsnomasterarea.png

Source: Icewind Dale II - IWD2.EXE

Rage against the logic

Sometimes logic can get the better of us, and then we rage.

../_images/rage.png

Source: Icewind Dale II - IWD2.EXE