View Full Version : Modding Birthright: Gorgon's Alliance Adventures
kasrkraw
08-02-2018, 03:43 AM
Goblin Apocalypse at Bindier
https://imgur.com/ZmX3D1v
--------------------------------------------------------
So I noticed something peculiar when I extracted the 1.4 patch which gave me a great deal of excitement: the WADS folder.
https://imgur.com/CEpo6bq
If you thought the adventures in Birthright looked Doom-y, that's because they are! The two WAD files contained in the WADS folder are map files for Bindier and Lofton using the same data structure that mods use for the original doom games. This type of cross compatibility for the data files isn't unusual as plenty of older games were built off of the doom engine. The real question was if I can access the contents of the WADs.
As far as I know there hasn't been anything developed in the birthright community for editing the adventure maps, but Doom 1 and 2 have a whole suite of community generated tools for modding these days. In particular I wanted to see the structure of a WAD from Birthright.
Using SLADE I opened the WAD for Bindier.
https://imgur.com/MdOzDsI
Looking good so far, everything is in the same format as it would be for a doom WAD. See the "Map Marker" listed as "E1M1" there? E1M1 = Episode 1 Map 1 from Doom : P, but more importantly, we should be able to load up a map from Birthright in doom. All the necessary information is there, we'll just be missing assets.
Below is Lofton from Birthright loaded into Doom
https://imgur.com/3MfRD77
And below now is a level from a Doom WAD (Alien Vendetta) in Birthright
https://imgur.com/8Pm6Pmr
It's by luck that some of the ID's for things (objects that aren't the map geometry) in the Doom WAD corresponded to enemy ID's in Birthright and vice versa (https://imgur.com/pkD1pbu). Interestingly, a lot of them were for enemies I had never seen before, like "Dwarf Officer (https://imgur.com/p7MZ1Eg)" or "Lord", so there are certainly some near finished but unused assets lying around.
Doom X Birthright shenanigans aside, what is going to be most relevant to the community here is that there are mapping tools available for Doom that can be used for Birthright. Using Doombuilder I copy and pasted the Goblin 'thing' to create the first image of this post. Here is what that scene looked like in Doombuilder.
https://imgur.com/E92j2fK
All those question marks are there because there isn't an asset reference file available. However, the ID's and facings of things can still be edited. Map geometry should be modifiable as well, but I haven't quite confirmed that.
So what maps are editable? Presumably all of them. What is likely happening is that the WAD's contained in the WADS folder are PWADs and override the core data files for the maps, so replacing another map would involve creating and inserting a WAD into the WADS folder with the same name as it. This is gist of what I did to insert a Doom WAD into birthright (renaming to BINDI_MW.wad and making sure the markers were set up correctly).
Without necessarily knowing what ID corresponds to what asset it seems entirely possible to manually increment through all possible ID's to determine what ID corresponds to what textures, what objects, etc. to allow creation of maps for Birthright: Gorgons Alliance. For the time being I'll keep exploring what the bounds of editing are in this manner, and maybe at some later date get back to the community with more technical information on this topic as well as use notes for the doom tools.
Arjan
08-02-2018, 11:19 PM
nice work :)
can you also extract the character models? perhaps its fun to use them in the Birthright game i am currently making. they do need a bit of retexturing though
AndrewTall
08-03-2018, 10:36 PM
Very impressive work, I had no idea of the Doom connection.
This is wonderful and makes me want to reinstall the game and do some modding! Thanks for sharing your findings.
Sorontar
08-04-2018, 11:46 AM
Wow, good find. Thanks for telling us about this.
kasrkraw
08-06-2018, 03:40 AM
I've taken some time to look into acquiring resources for use with the available tools from the doom community (notably SLADE and DOOMBUILDER) to make modification or maps/creation of new ones friendlier, and doing so seems to require cracking open the .RES files in the RESFILES folder.
Not being sure of what is necessarily in each .RES, I tried opening them and decompressing them with a variety of programs to no avail. I decided to take a looksie at the files using a hex editor. Mostly nonsense except that I spotted a filename and extension for an image (NAME.PCX) inside... repeatedly. Maybe we can get somewhere. The bytes inside around these file names don't seem to correspond to the .pcx file format which follows a predictable pattern with a 128 byte header (info on that here: http://bespin.org/~qz/pc-gpe/pcx.txt). NOTE - if you open one of the 'raw' .pcx files laying around on the .iso you can see the header format in action for yourself.
There must be some type of compression at play, but I have no idea what type. This is well outside of my realm of knowledge but undeterred I investigated the files some more to see what I could find. Within a given .RES file containing images, at the header of each .pcx file, immediately before the file name, are 4 bytes that repeat for each file depending on which .res you have open. In the TEXTURES.RES they are:
00 03 02 01
Screenshot for reference (https://imgur.com/zDzvC0n)
This shall be dubbed the "Countdown sequence". Based on the fact that it isn't always null, 3, 2, 1 I don't think it's meant to be a countdown, I just happened to see the sequence in the textures file first. Maybe it has to do with how the game engine treats the files? In THINGPCX.RES it is also 00 03 02 01, but in MEDRTRES.RES the sequence is 00 00 02 02.
For each .pcx file, the string "RSRC" will also appear, starting 19 bytes prior to the Countdown Sequence. the RSRC may be preceded by null bytes. In the below example the leftmost two bytes are null, and the right four are RSRC:
00 00 52 53 52 43
Following the Filename there are usually three null bytes, though I have seen an occasional FF or 01. What occurs afterwards seems to have a pattern but it varies by .res file. In general, following the null bytes there seems to be about ~15 bytes of 'structured' bytes where the values frequently repeat for each .pcx. Following that there are no significant sets of matching bytes.
Based on the first file embedded in each .res, it seems that each file consistently starts with 12 bytes before the RSRC string, and contains a countdown sequence immediately prior to the filename. I can't make much useful info out from the 15 bytes between the RSRC string and the countdown sequence, but from looking at them across a few different files we get (2 sets per file):
FROM THINGPCX
3A 09 00 00 16 09 00 00 AC 09 00 00 F6 78 7E
38 0D 00 00 14 0D 00 00 06 0E 00 00 6E 63 7C
FROM TEXTURES
2E BA 00 00 0A BA 00 00 0A 00 01 00 79 B9 2B
FD C4 00 00 D9 C4 00 00 0A 00 01 00 E1 A2 29
FROM FONT
F3 54 00 00 CF 54 00 00 66 17 07 00 AE 9C 2A
A9 10 00 00 85 10 00 00 B4 66 00 00 2E 81 24
I see two sets of double null bytes occupying positions 3&4 and 7&8 in the set of 15. This seems to stay true for most of the files, but not all. In particular I saw that MAP.RES broke the trend. Curious to see if there are any patterns in the first 12 bytes of each file, here are another 3 sets of 2 sets:
FROM THINGPCX
00 04 00 00 9D F4 25 00 34 01 00 00
CE 2F 11 CC 00 00 25 28 00 00 00 00
FROM TEXTURES
B4 CC B6 CC CE B8 B6 B8 00 00 00 00
B3 CC B6 CC CE B8 B6 B8 00 00 00 00
FROM FONT
88 20 19 19 0F 18 00 00 00 00 00 00
00 00 87 34 13 44 01 28 00 00 00 00
From here, it looks like the last two bytes of this sequence might always be null? It does look there might be some sort of pattern within TEXTURES.RES at least.
This is about as deep as I want to delve into the .RES files though. I've beat my head against them for a while now but trying to glean the images from them seems to be beyond my capabilities. Maybe what I've found here can help someone else with more knowledge eventually extract the images and other files. For a direction, my wild guess is that the .pcx files embedded in the .RES files contain only critical header information and critical image data, along with whatever information is needed for the game engine to process them. Maybe it takes what is in the file and spits out .pcx files on the fly for use in the game or something.
I'm going to look into editing the scene files for each adventure next and see if it is possible to add new ones next.
InVivoSomnium
08-23-2021, 01:58 AM
I know this thread is 3 years old, but I haven't seen anyone else working on this.
Some useful info I've found digging through the source files (available on archive.org), is that they used an application called RESUTIL.EXE (in the \Birthrt\RESUTIL folder) to compress and concatenate groups of files together. The process is described in the RESUTIL.H and RESUTIL.C files.
About the "RSRC" and "countdown sequence":
typedef struct sResourceHeader {
ULONG startcode; // RSRC string for validity check
ULONG cbChunk; // total size of this chunk
ULONG cbCompressedData; // size of compressed data
ULONG cbUncompressedData; // size of uncompressed data
ULONG hashValue; // hash value of file name
UBYTE flags; // [d4-03-97 JPC] new field
UBYTE compressionCode; // 0 = none, 1 = RLE, 2 = LZSS
// (note: RLE is not currently supported)
UBYTE fileExtension; // index to file extension type
char szName[cMAX_RESNAME]; // 8.3 filename (no path)
} RESOURCE_HEADER;
I also found in another file (RESMANAG.C) a list of the .RES files and what is in them.
char * gszBasicResFiles[] = {
"UI.RES", // everything from UI directory
"TEXTURES.RES", // wall and other textures for WADs
"FONT.RES", // Fonts
"MAP.RES", // The game map
"LOWRES.RES", // Ultra low res animations
#if defined(_JUNEDEMO)
"MEDSTRES.RES", // Medium res stand frames.
#else
"MEDFTRES.RES", // Medium res Fight animations
"MEDRTRES.RES", // Medium res (Rest of)animations
"HIGHRES.RES", // High res animations
#endif
"THINGPCX.RES", // Thing PCX's
"FINALE.RES", // Finale PCX's
""
};
Anyway, by using the RESUTIL.EXE application, there's a way to list the files it includes and a function to extract a single file. So for example: "resutil textures.res l" returns a list of 581 files (idk how to scroll back up in DosBox/DOS, so hopefully someone can supply a complete list from this for us). And by using the extract function, "resutil textures.res e ground01.pcx", a file named ground01.pcx gets spat out, but no image processing application can recognize it (GIMP, Photoshop, Paint.NET, etc.). And that's where I'm stuck. I don't know enough about the .PCX file format to check the hex code and verify the files, or what other method of processing is needed to get the files out in a readable format.
For anyone that wants to replicate my results, you'll need to move the .RES files and the DOS4GW.EXE from the Birthrt source code folder into the RESUTIL folder with the RESUTIL.EXE. Then you can use either a command shell or DosBox to navigate to the RESUTIL folder and run "resutil" to see the list of commands and syntax.
My guess is that the file that gets extracted is still compressed, and the .H file says they use LZSS (because RLE wasn't supported), but I have no idea how decompression is done.
InVivoSomnium
08-25-2021, 02:20 AM
I know this thread is 3 years old, but I haven't seen anyone else working on this.
Some useful info I've found digging through the source files (available on archive.org), is that they used an application called RESUTIL.EXE (in the \Birthrt\RESUTIL folder) to compress and concatenate groups of files together. The process is described in the RESUTIL.H and RESUTIL.C files.
About the "RSRC" and "countdown sequence":
typedef struct sResourceHeader {
ULONG startcode; // RSRC string for validity check
ULONG cbChunk; // total size of this chunk
ULONG cbCompressedData; // size of compressed data
ULONG cbUncompressedData; // size of uncompressed data
ULONG hashValue; // hash value of file name
UBYTE flags; // [d4-03-97 JPC] new field
UBYTE compressionCode; // 0 = none, 1 = RLE, 2 = LZSS
// (note: RLE is not currently supported)
UBYTE fileExtension; // index to file extension type
char szName[cMAX_RESNAME]; // 8.3 filename (no path)
} RESOURCE_HEADER;
I also found in another file (RESMANAG.C) a list of the .RES files and what is in them.
char * gszBasicResFiles[] = {
"UI.RES", // everything from UI directory
"TEXTURES.RES", // wall and other textures for WADs
"FONT.RES", // Fonts
"MAP.RES", // The game map
"LOWRES.RES", // Ultra low res animations
#if defined(_JUNEDEMO)
"MEDSTRES.RES", // Medium res stand frames.
#else
"MEDFTRES.RES", // Medium res Fight animations
"MEDRTRES.RES", // Medium res (Rest of)animations
"HIGHRES.RES", // High res animations
#endif
"THINGPCX.RES", // Thing PCX's
"FINALE.RES", // Finale PCX's
""
};
Anyway, by using the RESUTIL.EXE application, there's a way to list the files it includes and a function to extract a single file. So for example: "resutil textures.res l" returns a list of 581 files (idk how to scroll back up in DosBox/DOS, so hopefully someone can supply a complete list from this for us). And by using the extract function, "resutil textures.res e ground01.pcx", a file named ground01.pcx gets spat out, but no image processing application can recognize it (GIMP, Photoshop, Paint.NET, etc.). And that's where I'm stuck. I don't know enough about the .PCX file format to check the hex code and verify the files, or what other method of processing is needed to get the files out in a readable format.
For anyone that wants to replicate my results, you'll need to move the .RES files and the DOS4GW.EXE from the Birthrt source code folder into the RESUTIL folder with the RESUTIL.EXE. Then you can use either a command shell or DosBox to navigate to the RESUTIL folder and run "resutil" to see the list of commands and syntax.
My guess is that the file that gets extracted is still compressed, and the .H file says they use LZSS (because RLE wasn't supported), but I have no idea how decompression is done.
Anyway, by using the RESUTIL.EXE application, there's a way to list the files it includes and a function to extract a single file. So for example: "resutil textures.res l" returns a list of 581 files (idk how to scroll back up in DosBox/DOS, so hopefully someone can supply a complete list from this for us). And by using the extract function, "resutil textures.res e ground01.pcx", a file named ground01.pcx gets spat out, but no image processing application can recognize it (GIMP, Photoshop, Paint.NET, etc.). And that's where I'm stuck. I don't know enough about the .PCX file format to check the hex code and verify the files, or what other method of processing is needed to get the files out in a readable format.
For anyone that wants to replicate my results, you'll need to move the .RES files and the DOS4GW.EXE from the Birthrt source code folder into the RESUTIL folder with the RESUTIL.EXE. Then you can use either a command shell or DosBox to navigate to the RESUTIL folder and run "resutil" to see the list of commands and syntax.
My guess is that the file that gets extracted is still compressed, and the .H file says they use LZSS (because RLE wasn't supported), but I have no idea how decompression is done.
I'm currently slowly working my way through rebuilding Birthright: The Gorgon's Alliance (https://www.kiranwelle.com/series/rebuilding-birthright-the-gorgons-alliance) and saw your post while looking back at older discussions. I'm sad I didn't notice this earlier! I may detour and try to rebuild resutil first so we can at least maybe mod DOS/Win95 Birthright with new maps or textures.
I've just started work on a resutil.exe replacement for modern computers. Once it's more useful, I'll share it through the GitHub reporsitory (https://github.com/Shiryou/brut). Currently, it only lists the files in a resource file with a bit of information about each one.
In case it's helpful, I've posted the output for all the .RES files from the CD and (hopefully helpful) context here: https://gist.github.com/Shiryou/68c4d8f16ce5a95e9f27719c1cabf7fd
I'll post another update once the project is more functional and there's a download for people to use.
Regarding PCX files, I was able to open some of the files from the CD using GIMP, and Adobe claims that Photoshop or Illustrator (https://www.adobe.com/creativecloud/file-types/image/raster/pcx-file.html) should be able to handle them.
Here's one of the PCX files from the CD converted to PNG using GIMP:
1870
My next goal is to extract files, so I'll try opening the PCX files in there to see if I encounter the same issue.
Edit: I've managed to get extracting uncompressed files working, but the implementation of LZSS seems to be different from standard packages I'm finding. That covers about 125 files out of 9427 (1.3%). Sadly, my assembly language skills are a bit rusty, so it might take a while for me to figure out how to port the algorithm.
For anyone interested, I have a command-line utility to list and extract files from RES files: https://github.com/Shiryou/brut/releases/tag/nightly
Sadly, RESUTIL converts PCX files to a non-standard bitmap format before submitting them to the RES file and doesn't re-convert them during export. Adding files to RES files is next, so I have to tackle the conversion anyway and will try to write a reversal function.
For now, only FLC and WAV files export as one would expect.
Here's how to use the program:
Usage: resutil resfile-name [[s nnnnn] [c] [n] [r] [u] [+|-|e sourcefile-name ]] | [l] | [v]
+ add file
e extract file (does not remove it)
x extract all files (does not remove them)
hc use CRC hash (default)
hi use ID hash
l list contents of resource file
n do not rotate PCX resources (default)
u do not compress resources
v verify resource file
EDIT:
9/7: It can now add files, but it doesn't support compression, rotation, or PCX decompression (as mentioned above) yet.
9/9: PCX decompression is now supported. There are also builds for Windows, Mac, and Ubuntu.
9/10: PCX rotation is now supported. We're almost there! Just LZSS compression is left before we have a RESUTIL replacement. Then, I'll try undoing rotation and PCX decompression and move on to creating a GUI.
9/15: I've been able to confirm that editing a resource file works. Check out a video of replaced images in the intro sequence (https://raw.githubusercontent.com/Shiryou/kiranwelle/master/assets/img/posts/modding_birthright/birthright-altered-intro.mp4).
I've written up a lot of my findings from this past weekend on my website (https://www.kiranwelle.com/posts/2024/10/creating-custom-adventures-birthright) and am copying it here for posterity.
I've figured out how to create and import custom adventures into The Gorgon's Alliance.
Birthright allows a total of 50 adventures to be loaded. The default adventure list, containing 26 adventures, is hard-coded. These hard-coded adventures are the only ones that can be tied to a location in the game. There is then room to add 24 custom adventures. These adventures appear by default on the Adventure action screen when you start a “Full Game,” regardless of difficulty.
For a custom adventure to work, you only need four files:
SCENES\ADVENTR.SCN: The scene file, which defines the quest objective, the WAD file to load, and some other options
WADS\ADVENTR.WAD: The adventure, including the map, items, enemies, etc.
TEXT\ADVENTR.TXT: The description for the adventure screen
UI\ADVSCN\ADVENTR.PCX: The title image for the adventure screen (alternatively, you can add the file to TEXTURES.RES)
All files should be no longer than eight characters, plus the extension. This is an old DOS limitation that lives on in WINBR.
Custom adventures will appear on the Adventures screen in a Full Game (regardless of difficulty). Your adventure will get its name from the WAD filename and will not have a suggested level.
1895
Scenes
“Scene” files (.SCN) are Birthright’s entry into custom adventures, including the WAD filename, quest goal “thing,” background music, and sky box. User adventures are .SCN files containing the lines:
[Type]
1
The scene file is the only part of a custom adventure that doesn’t need to have the same name as the rest of the files. The only use I can see for this is to re-use an adventure with a different quest item or sky box.
WADs
WAD (https://doomwiki.org/wiki/WAD) (technically PWAD in this case) is a data file format originally defined for use in the Doom game engine. Birthright uses an engine called Nova that uses the same file format for storing levels. In Doom, resources like textures are loaded from internal WADs, whereas Nova loads them from TEXTURES.RES. This means that many Doom level editors can’t display Birthright’s textures properly.
1896
If there is enough interest in creating custom adventures, we can submit patches to the popular Doom level editors to add support for Birthright’s textures.
The (in DOOM WAD terms) “Things”—enemies, decorative items, treasure, etc.—are referenced only by numbers. These numbers come from hard-coded definitions, so adding new enemies, spells, or items is impossible. The list of available Things is in THINGTYP.H.
1897
Descriptions
The .TXT files contain text for the adventure description in the Adventure and Advisors screens, including some customization for font styles, as below. Italics are an option in the code, but they don’t seem to do anything. Word wrap gave me the most trouble and seemed a bit wonky.
^F02^W304^F02Font testing F00. ^F04Font testing F04. ^F05Font testing F05. ^F09Font testing F09. ^F16Font testing F16.
^F02^W400^F02^T0T Tran^T1sluc^T2ent ^T3text^T4 T. ^T0^UUnderlined text U.^U ^BBold text B. ^B^IItalicized text I.^I
^C001Color testing C001. ^C031Color testing C031. ^C064Color testing C064. ^C120Color testing C120. ^C136Color testing C136. ^C188Color testing C188.
^F02^C001Testing word wrap at a specific width in pixels. The quick brown fox jumps over the lazy dog. Testing text length W304.
^W325Testing word wrap at a specific width in pixels. Testing text W325.
^W250Testing word wrap at a specific width in pixels W250.
1898
Title Image
The title image is a 432 x 233 pixel PCX image either stored in TEXTURES.RES or UI\ADVSCN with a filename corresponding to the adventure name. If you intend to share your adventure with others, you should put your title image into UI\ADVSCN, so it is easy to put the entire adventure into a file archive and extract it to the right location without affecting anything else.
1899
Battle Maps
While unrelated to adventures, Birthright’s maps for battles are also WAD files. You can load them into an adventure and take a stroll around. They might be useful for getting comfortable modding, as they already define some terrain you can build on top of.
Battle map .SCN filenames are hard-coded, and there are 4 maps per terrain type. For example, BATLM0.SCN is the first mountain battle map.
The four categories are:
W = Woods
P = Plains
M = Mountains
S = Swamp
Question
10-19-2024, 06:20 AM
Hey, i was wondering if you have managed to discover where the xp for completing an adventure is stored. Is it stored in the adventure file itself or does the game auto calc it elsewhere?
Also, have you actually managed to recompile the game and get it to launch?
This dive into the adventures has kept me from recompiling the game. I was going to direct you to this project (https://github.com/fire-lizard/birthrt) that compiled the game, but I see you've already found that.
I will look into the XP points for adventures tonight. I've found the XP for battles and other actions, but not the adventures yet. It doesn't seem to be stored in the adventures themselves. My guess is it's based on the quest object.
I'll get back to trying to compile the game once my modding reference (https://www.kiranwelle.com/birthright/modding-reference/) has most of the information necessary to build a custom adventure from scratch. This should be done within this year.
Just a quick note: I think fire-lizard's project goals are a bit different from mine. They are updating the code to compile in a modern compiler and focusing on modern OSs. My goal is to compile and still be able to run on DOS and Win 95, since the game still runs in modern OSs just fine.
There's a lot of code to look through, but here are my impressions of the experience gained during adventures. I hope this helps.
COMBATUI.CPP:414 - 1 XP per gold coin collected (double for Bard and Thief), summed up after selling inventory.
COMBATUI.CPP:447 - 10,000 XP multiplied by the difficulty level of the adventure if the quest item is found and the regent is alive. The level of the adventure is hardcoded in CHARSEL.CPP. Custom adventures are always level 1.
PLAYHIT.CPP:107/169 - Variable XP for the final blow to an enemy (physical/magical), based on a set XP for that enemy. It's unclear if this applies to all characters performing an attack during the killing round or just the character who lands the final blow.
Corrections:
You CAN set the difficulty of an adventure (1-4) in the scene file.
Only the character who hits the deathblow gets XP for an enemy kill.
Question
10-25-2024, 03:14 PM
This dive into the adventures has kept me from recompiling the game. I was going to direct you to this project (https://github.com/fire-lizard/birthrt) that compiled the game, but I see you've already found that.
I will look into the XP points for adventures tonight. I've found the XP for battles and other actions, but not the adventures yet. It doesn't seem to be stored in the adventures themselves. My guess is it's based on the quest object.
I'll get back to trying to compile the game once my modding reference (https://www.kiranwelle.com/birthright/modding-reference/) has most of the information necessary to build a custom adventure from scratch. This should be done within this year.
Just a quick note: I think fire-lizard's project goals are a bit different from mine. They are updating the code to compile in a modern compiler and focusing on modern OSs. My goal is to compile and still be able to run on DOS and Win 95, since the game still runs in modern OSs just fine.
I think you should be working with fire-lizard if possible, because my understanding is that he tried to compile the code on a modern PC, and couldnt do it...hence the changes he made to get it to compile. So i think it would be a lot easier for you if you just do the same thing he did and get it to compile on a modern PC, rather than try to get it to compile the exact same way the devs did (which requires outdated stuff which may no longer be available).
Question
10-25-2024, 03:17 PM
There's a lot of code to look through, but here are my impressions of the experience gained during adventures. I hope this helps.
COMBATUI.CPP:414 - 1 XP per gold coin collected (double for Bard and Thief), summed up after selling inventory.
COMBATUI.CPP:447 - 10,000 XP multiplied by the difficulty level of the adventure if the quest item is found and the regent is alive. The level of the adventure is hardcoded in CHARSEL.CPP. Custom adventures are always level 1.
PLAYHIT.CPP:107/169 - Variable XP for the final blow to an enemy (physical/magical), based on a set XP for that enemy. It's unclear if this applies to all characters performing an attack during the killing round or just the character who lands the final blow.
Corrections:
You CAN set the difficulty of an adventure (1-4) in the scene file.
Only the character who hits the deathblow gets XP for an enemy kill.
Thanks, i was mainly wondering if it was possible to change the xp of adventures without needing to recompile the game, but it doesnt seem possible at this point.
Im curious as to where you see the difficulty in the scene file though. For example, i am looking at Aerele_MW.SCN, and i do not see a difficulty listed anywhere...
I think you should be working with fire-lizard if possible
I considered it, but they haven't responded to discussions on that repository in a few years. I'm also not an experienced C++ programmer, and my time is pretty limited, so I'm not sure how much I could actually help. I'm happy to help where I can, though.
Edit 10/25: After some checking, it looks like fire-waran is the same person. I'll see about shooting them a message when I'm done with my current projects.
Im curious as to where you see the difficulty in the scene file though. For example, i am looking at Aerele_MW.SCN, and i do not see a difficulty listed anywhere...
The difficulty for default adventures is hardcoded in CHARSEL.CPP. You can set it for custom made adventures as described in TEMPLATE.SCN.
Edit 11/13: I'm taking a break to finish up another project and will then try to continue with recompiling the game. There's a bug that makes creating custom adventures frustrating, and I think it needs solving for any of my work here to be useful.
Edit 10/17/2025: I've managed to get the game to compile and have made my first change to the source code. I've started a project called the Birthright Preservation Patch.
I'll share releases on this thread (http://www.birthright.net/forums/showthread.php?29331-Birthright-The-Gorgon-s-Alliance-Preservation-Patch), but you can also follow the project on ModDB (https://www.moddb.com/mods/birthright-preservation-patch) or GitHub (https://github.com/Shiryou/BirP).
I have a lot of plans for this, but it'll take time before I can make major changes. I'm happy for any feedback, bug reports, or feature requests.
Powered by vBulletin® Version 4.2.2 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.