Skip to content

Spellhold-Studios/Baldurs-Gate-Graphical-Overhaul

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

321 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Spellhold Studios

Platform Language SupportedGames

Baldur's Gate Graphical Overhaul

A Spellhold Studios mod for Baldur's Gate II:ToB, Baldur's Gate Trilogy, BG1:EE, BG2:EE, EET and TuTu


Author: Yovaneth, Weigo
Mod Website: Gibberlings 3
Mod Forum: Baldur's Gate Graphical Overhaul BGGO

Β 


Overview

This mod is probably the biggest visual overhaul of the game since it was released. It reinstates the extended night areas that are missing from all main areas. Now, when you open doors at night they show light from inside the building. Buildings actually have windows that are lit up. Many night maps have their own lighting map and interiors are equipped with candles, torches and lights.
As luck would have it, two met by chance in the Beamdog and Gibberlings 3 forums, respectively. The thanks here goes to Jastey. One was trying to deal with all the problems of the two versions not working properly for both engine variants. The other was just tweaking and beautifying the graphics further. Fortunately, when they finally got in contact, there was an incredible synergy effect. They understood each other right away and joined forces. Not only were all the old graphics from BG1 reworked, but they also decided to add all the areas from BG2, ToB, SoD, BG1EE and BG2EE without the original night map. This means that there are now 83 new night maps. In total 636 maps will be improved. These are the night maps and also day maps. Light maps are added, graphical bugs are fixed, animated water areas are added, over 7000 animated candles, torches and lights are added. Especially with the animated candles, torches and lights, old maps can be improved at any time.

Components

  • The first component is the core component, which contains all files for the areas of Baldur's Gate 1 with TotSC and Baldur's Gate 2 with ToB.
  • The second component contains alternative area graphics and is optional. Currently, it is only available for one area, namely the bridge at Baldur's Gate, Wyrm's Crossing from BG1. As you can see in the image below, the city gate is already visible on the left side of the map. (left: original, right: alternativ)

BG0100

Some pictures for impressions

BG0100
Left: Original Baldur's Gate NW Β Β Β Β Β Β  Right: BGGO

BG0700
Left: Original Baldur's Gate Central Β Β Β Β Β Β  Right: BGGO

BG0100
Brynnlaw

BG0100
Amkethran


Doors in Baldur's Gate City

Many doors in Baldur's Gate City have now been updated.

  1. There are a number of doors that, due to overlapping maps, can be seen in two areas at the same time. An example can be seen here in BG0600 and BG1100 (Pictures). It is now possible to use these doors on both maps. If the door is opened or closed on one map, it is automatically opened or closed on the other map. You also exit via the same door on the map through which you entered the house. This now feels much more realistic than when the door did not work on one map.
  2. Some houses have two doors. If you entered through the first door and exited through the other, the other door would not open. This has now been changed; the door opens automatically when you leave.
  3. Two doors in BG0200 had door animations in the TIS and WED files but were not being used. These have now been reactivated, and both doors now open and close smoothly. (Pictures)
  4. A whole series of doors in BG0200, BG0800, BG1100 and BG1200 were not being used. In the game, they are marked as dilapidated houses. These doors are still marked as such, but I have provided the animations as described in point 3. This is of interest to modders. The door found in BG1100 and BG1200, which, as mentioned in point 1, is visible in both maps, is used by the Baldurans Seatower mod. You can find a list of the doors here (Pictures)
  5. In BG0800, there is a street that cannot be accessed. For this journey, the short section on the edge is no longer accessible via the world map, but via traveltrigger as a direct route. (Pictures)

Door0619 in BG0600 (unused in original BG0600)
BG0600
Door0619 in BG1100
BG1100

Reactiviation of unused door animation in BG0200
BG1100

This part of BG0800 is not accasible BG1100
hr>

Compatibility

This mod is compatible with both Infinity Engine variants. Therefore, almost all Baldur's Gate variants are compatible with this version. Primarily with EET and BGT of course, but also with ToB (SoA is not enough) and BG2EE and also with BG1EE with or without SoD. TuTu_TotSC should also be compatible with BGGO, but has not been tested yet.
This mod is compatible with all mods that do not overwrite are, wed, tis, pvrz and bmp files. are and wed files should be patched then.
Additional built-in mod compatibility:
-Lure of Sirines Call
-Baldurans Seatower
-Gavin NPC
-TDDz
-BG1NPC (alternative Wyrm's Crossing)


Installation

Notes

If you've previously installed the mod, remove it before extracting the new version. To do this, run setup-bggo.exe, un-install all previously installed components and delete the πŸ“ bggo folder.

When installing or un-installing, do not close the DOS window by clicking on the X button! Instead, press the Enter key whenever instructed to do so.

Disable any antivirus or other memory-resident software before installing this or any other mod. Some (particularly avast and Norton!) have a tendency to report false positives with mod activity, resulting in failed installs.

Windows

Baldur's Gate Graphical Overhaul for Windows is distributed as an extractable compressed archive and includes a WeiDU installer.

Extract the contents of the mod archive into the folder of the game you wish to modify (the folder which contains the "CHITIN.KEY" file), using 7zip, WinRAR, or another file compression utility that handles .zip files. On successful extraction, there should be a πŸ“ bggo folder and a setup-bggo.exe file in your game folder. To install, simply double-click setup-bggo.exe and follow the instructions on screen.

Run setup-bggo.exe in your game folder to reinstall, un-install or otherwise change the components settings.

Mac OS X

Baldur's Gate Graphical Overhaul for Mac OS X is distributed is distributed in the same compressed archive and includes a WeiDU installer.

First, extract the files from the archive into your game directory. On successful extraction, there should be a πŸ“ bggo folder, setup-bggo and setup-bggo.command files in your game folder. To install, simply double-click setup-bggo.command and follow the instructions on screen.

Run setup-bggo.command in your game folder to reinstall, un-install or otherwise change the components settings.

Linux

Baldur's Gate Graphical Overhaul for Linux is distributed as a compressed tarball and does not include a WeiDU installer.

Extract the contents of the mod to the folder of the game you wish to modify.

Download the latest version of WeiDU for Linux from WeiDU.org and copy WeiDU and WeInstall to /usr/bin. Following that, open a terminal, cd to your game installation directory, run tolower and answer 'Y' to both queries. You can avoid running the second option (linux.ini) if you've already ran it once in the same directory. To save time, the archive is already tolowered, so there's no need to run the first option (lowercasing file names) either if you've extracted only this mod since the last time you lowercased file names. If you're unsure, running tolower and choosing both options is the safe bet.

To install, run WeInstall setup-bggo in your game folder. Then run wine BGMain.exe and start playing.

Note for Complete Un-installation

In addition to the methods above for removing individual components, you can completely un-install the mod using setup-bggo --uninstall at the command line to remove all components without wading through prompts.


Credits and Acknowledgements

Original author: Yovaneth (incredible graphic artist)
Coders: Weigo (completely revised version)

Special Acknowledgements to:

  • Spellhold Studios team for hosting the mod (Forums).
  • Gibberlings3 team for hosting the mod (Forums).
  • The creators of the Baldur's Gate series: Bioware and Black Isle Studios.
  • For the great support and help: Galactygon, Jastey, Salk, Sam, TotoR, ALIENQuake, skellytz ... without the constant feedback, everything would not have been so possible
    and many more, which I can't look up now, because the SHSForum is down. Should it work again, I will add all the others here, or they should contact me :)
  • Everyone else from the The Gibberlings Three, Spellhold Studios forums, and the other Infinity Engine gaming and modding communities who offered their help and support.

Programs/Tools used in creation:

Copyright Information

Baldur's Gate Graphical Overhaul is not developed, supported, or endorsed by BioWareβ„’ or Interplay/BlackIsle, Overhaul, Beamdog or the Wizards of the Coast. It was developed by AUTHOR, based on material from the game Baldur's Gate II and its expansion.
All mod content is Β©AUTHOR.
Baldur's Gate II: Shadows of Amn and Baldur's Gate II: Throne of Bhaal Β© TSR, Inc. The BioWare Infinity Engine is Β© BioWare Corp. All other trademarks and copyrights are property of their respective owners.
This mod was created to be freely enjoyed by all Baldur's Gate II players, and its content is free of rights. However, it should not be sold, published, compiled or redistributed in any form without the consent of the author.
Please note that any and all redistribution and/or hosting of this mod is prohibited without permission from the author.
If there are any copyright issues or this statement needs revision, then please contact me and advise me what to do about it. Most notably, if you see any artwork in this mod that might conflict with Copyright rules, please let me know as soon as possible, and I will remove the conflicting content immediately.
The modding community for the Infinity Engine has been going strong for more than 10 years now, and is the culmination of thousands of unpaid modding hours by fellow fans of the game. Modders produce their best work and players get the best, well-supported mods when we all work together.
There are two big ways to upset this harmony. One is to claim someone else's work as your own. The second is to host and redistribute a mod without permission from the author(s).
Be kind to your fellow players and modders. Don't do either.


Modding

The new version is very modular. This makes it not too difficult to add new content for areas.
Is the area already included in the mod?
Yes: Just add the new files to the appropriate folders under πŸ“ bggo/base/... as well.
No: Open the bggo.tp2 with a text editor and add the name of the area in the corresponding table ("bg1_areas", "bg2_tob_areas", "sod_areas", "bgee_areas", "bg2ee_areas"). Then the new files will be installed automatically.
For the naming of the BG1 areas the labeling of EET is taken (BG0100), because the clarity of the area names is easier.

For example, if we want to add new candles to an interior map:
Create in the πŸ“ bggo/base/are_patch/... a file with the name ARXXXX_are.tpa where ARXXXX is the name of the area.
Copy the code

PATCH_DEFINE_ARRAY x_coord BEGIN 1235 235 785 END
PATCH_DEFINE_ARRAY y_coord BEGIN  847 333 753 END
PATCH_PHP_EACH x_coord AS index => x BEGIN
	LPM ~DELETE_EXISTING_ANIMATIONS~
	LPF fj_are_structure
	INT_VAR
		fj_loc_x = $x_coord("%index%")
		fj_loc_y = $y_coord("%index%")
		fj_schedule = 0b111111111111111111111111 //Hours All
		fj_flags = 0b00000000000000000001000001000011	// Visible, blend colours, not covered by wall, don't remove in combat
		STR_VAR
		fj_structure_type = animation
		fj_name = FLAME2S
		fj_bam_resref = FLAME2S
	END
END
LPM ~CLEAR_ARRAY~

and add the correct coordinates. Now you have to check if the map appears in the lists of bggo.tp2. If not, you have to add the map to the list. Have a look at the examples in the existing files, there you can see different variants.

Compatibility with other mods is also taken care of. For this you can use the above mentioned ARXXXX_are.tpa or also the ARXXXX_wed.tpa in the πŸ“ bggo/base/wed_patch/... directory. Depending on what the compatibility requires, you can choose the appropriate files. Example:
TDDz: Here the are files must be patched. So we use for example the BG2900_are.tpa.
GavinNPC: Here a door must be added to the wed file, so we use the BG3300_wed.tpa.

Also with the searchmap you can prevent overwriting the files by using the SRmap_modding_tool. The ARXXXXSR.2da file created with this tool is always preferred to the corresponding ARXXXXSR.bmp. So only the changed pixels are added to the bmp file.

Unused doors

To reactivate the unused doors, you can use the code below the image. Please note the following:

  1. //BIT1 is for locked: remove the // before + BIT1 and the door will be locked
  2. //lock difficulty: Enter a numerical value between 0 and 100 here, depending on the difficulty level
  3. // destination_area: The house area you wish to travel to (e.g.: BG0114). Replace the ??? with the destination_area
  4. // destination_name: This is the name of the exit where you come out of the house (e.g.: Exit0800). Replace the ??? with the destination_name
  5. // Exit Name: The name of the exit you must specify when leaving your house to arrive in BG City (destination_name in BG0114)

Door04 in BG0200 - original triggername: Door Object 15
BG0600

COPY_EXISTING ~BG0200~ ~override~							// EET: BG0200, BGT: AR7300, cpmvars: %NBaldursGate%
    GET_OFFSET_ARRAY doors ARE_V10_DOORS
	PHP_EACH doors AS i => off BEGIN
		READ_ASCII off + 0x20 door_id
		PATCH_IF ~%door_id%~ STR_EQ ~Door04~ BEGIN
			WRITE_LONG off + 0x28 BIT6 // + BIT1 				//BIT1 is for locked if necessary
			WRITE_SHORT off + 0x8c 0							//lock difficulty			
			WRITE_SHORT off + 0x88 0							
			READ_ASCII off doorname (32) NULL
			WRITE_ASCIIE off + 0x9c ~bggo_%doorname%~ #32
		END
	END
	
	GET_OFFSET_ARRAY triggers ARE_V10_REGIONS
	PHP_EACH triggers AS i => off BEGIN
		READ_ASCII off triggername (32) NULL
		READ_SHORT off + 0x22 xmin
		READ_SHORT off + 0x24 ymin
		PATCH_IF ~%triggername%~ STR_EQ ~InfoHouse~ AND xmin = 162 AND ymin = 2225 BEGIN
			WRITE_ASCIIE off ~bggo_%doorname%~ #32
			WRITE_SHORT off + 0x20 2
			WRITE_SHORT off + 0x34 30
			WRITE_ASCII off + 0x38 ~???~					// destination_area
			WRITE_ASCII off + 0x40 ~???~					// destination_name - exit
			WRITE_LONG off + 0x60 BIT11
			WRITE_LONG off + 0x64 `0
		END
	END
	
	LPF fj_are_structure
		INT_VAR
		fj_loc_x       = 212
		fj_loc_y       = 2319
		fj_orientation = 13
		STR_VAR
		fj_structure_type = entrance
		fj_name           = ExitDoor04								// Exit Name
	END

Door02 in BG0800 - original triggername: Door Object 12
BG0600

COPY_EXISTING ~BG0800~ ~override~							// EET: BG0800, BGT: AR7800, cpmvars: %EBaldursGate%
    GET_OFFSET_ARRAY doors ARE_V10_DOORS
	PHP_EACH doors AS i => off BEGIN
		READ_ASCII off + 0x20 door_id
		PATCH_IF ~%door_id%~ STR_EQ ~Door02~ BEGIN
			WRITE_LONG off + 0x28 BIT6 // + BIT1  				//BIT1 is for locked if necessary
			WRITE_SHORT off + 0x8c 0							//lock difficulty			
			WRITE_SHORT off + 0x88 0
			READ_ASCII off doorname (32) NULL
			WRITE_ASCIIE off + 0x9c ~bggo_%doorname%~ #32
		END
	END
	
	GET_OFFSET_ARRAY triggers ARE_V10_REGIONS
	PHP_EACH triggers AS i => off BEGIN
		READ_ASCII off triggername (32) NULL
		READ_SHORT off + 0x22 xmin
		READ_SHORT off + 0x24 ymin
		PATCH_IF ~%triggername%~ STR_EQ ~InfoHouse~ AND xmin = 186 AND ymin = 500 BEGIN
			WRITE_ASCIIE off ~bggo_%doorname%~ #32
			WRITE_SHORT off + 0x20 2
			WRITE_SHORT off + 0x34 30
			WRITE_ASCII off + 0x38 ~???~					// destination_area
			WRITE_ASCII off + 0x40 ~???~					// destination_name - exit
			WRITE_LONG off + 0x60 BIT11
			WRITE_LONG off + 0x64 `0
		END
	END
	
	LPF fj_are_structure
		INT_VAR
		fj_loc_x       = 225
		fj_loc_y       = 585
		fj_orientation = 11
		STR_VAR
		fj_structure_type = entrance
		fj_name           = ExitDoor02								// Exit Name
	END

Door04 in BG0800 - original triggername: Door Object 14
BG0600

COPY_EXISTING ~BG0800~ ~override~							// EET: BG0800, BGT: AR7800, cpmvars: %EBaldursGate%
    GET_OFFSET_ARRAY doors ARE_V10_DOORS
	PHP_EACH doors AS i => off BEGIN
		READ_ASCII off + 0x20 door_id
		PATCH_IF ~%door_id%~ STR_EQ ~Door04~ BEGIN
			WRITE_LONG off + 0x28 BIT6 // + BIT1 	 			//BIT1 is for locked if necessary
			WRITE_SHORT off + 0x8c 0							//lock difficulty			
			WRITE_SHORT off + 0x88 0
			READ_ASCII off doorname (32) NULL
			WRITE_ASCIIE off + 0x9c ~bggo_%doorname%~ #32
		END
	END
	
	GET_OFFSET_ARRAY triggers ARE_V10_REGIONS
	PHP_EACH triggers AS i => off BEGIN
		READ_ASCII off triggername (32) NULL
		READ_SHORT off + 0x22 xmin
		READ_SHORT off + 0x24 ymin
		PATCH_IF ~%triggername%~ STR_EQ ~InfoHouse~ AND xmin = 129 AND ymin = 2581 BEGIN
			WRITE_ASCIIE off ~bggo_%doorname%~ #32
			WRITE_SHORT off + 0x20 2
			WRITE_SHORT off + 0x34 30
			WRITE_ASCII off + 0x38 ~???~					// destination_area
			WRITE_ASCII off + 0x40 ~???~ 					// destination_name - exit
			WRITE_LONG off + 0x60 BIT11
			WRITE_LONG off + 0x64 `0
		END
	END
	
	LPF fj_are_structure
		INT_VAR
		fj_loc_x       = 181
		fj_loc_y       = 2680
		fj_orientation = 13
		STR_VAR
		fj_structure_type = entrance
		fj_name           = ExitDoor04								// Exit Name
	END

Door05 in BG0800 - original triggername: Door Object 15
BG0600

COPY_EXISTING ~BG0800~ ~override~							// EET: BG0800, BGT: AR7800, cpmvars: %EBaldursGate%
    GET_OFFSET_ARRAY doors ARE_V10_DOORS
	PHP_EACH doors AS i => off BEGIN
		READ_ASCII off + 0x20 door_id
		PATCH_IF ~%door_id%~ STR_EQ ~Door05~ BEGIN
			WRITE_LONG off + 0x28 BIT6 // + BIT1 	  			//BIT1 is for locked if necessary
			WRITE_SHORT off + 0x8c 0							//lock difficulty			
			WRITE_SHORT off + 0x88 0
			READ_ASCII off doorname (32) NULL
			WRITE_ASCIIE off + 0x9c ~bggo_%doorname%~ #32
		END
	END
	
	GET_OFFSET_ARRAY triggers ARE_V10_REGIONS
	PHP_EACH triggers AS i => off BEGIN
		READ_ASCII off triggername (32) NULL
		READ_SHORT off + 0x22 xmin
		READ_SHORT off + 0x24 ymin
		PATCH_IF ~%triggername%~ STR_EQ ~InfoHouse~ AND xmin = 2761 AND ymin = 229 BEGIN
			WRITE_ASCIIE off ~bggo_%doorname%~ #32
			WRITE_SHORT off + 0x20 2
			WRITE_SHORT off + 0x34 30
			WRITE_ASCII off + 0x38 ~???~					// destination_area
			WRITE_ASCII off + 0x40 ~???~					// destination_name - exit
			WRITE_LONG off + 0x60 BIT11
			WRITE_LONG off + 0x64 `0
		END
	END

	LPF fj_are_structure
		INT_VAR
		fj_loc_x       = 2723
		fj_loc_y       = 343
		fj_orientation = 3
		STR_VAR
		fj_structure_type = entrance
		fj_name           = ExitDoor05								// Exit Name
	END

Door01 in BG1200 - used by Baldurans Seatower
BG0600
Door01 in BG1300 - used by Baldurans Seatower
BG0600


Version History

Version History

See BGGO-Changlog.md

About

The biggest visual overhaul of the game since it was released with many fixes to almost all BG1 and BG2 areas.

Topics

Resources

Contributing

Stars

Watchers

Forks

Contributors