It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hello all. First of all I am surprised and absolutely delighted that a POD community still lives on! I was amazed to find still working versions of the CDPatcher and download sites still up etc. Big thank you to everyone!

I always wanted to change the AI driver names (Nitro etc). Does anyone know if this is possible? I fear it involves track-editing which is almost impossible as far as I can remember. Is there a way to do this without writing machine code?
No posts in this topic were marked as the solution yet. If you can help, add your reply
If I remember correct, the competitors entries (easy, medium, hard) are separate blocks at the end of the BL4. So it is not 'impossible' to change the names. However, even using PodPaint to decode/encode the binary circuit file, it is not an easy task with a hex-editor (header offsets include the checksums, most strings are xor-encrypted (s[i] ^= ~i)), and there are fields with unknown meaning).

Example for lake.BL9 (demo):

04{B7 BF AF B8} // "HARD"
0C{93 9F 96 99 A4 A5 A6 B0 D9 9A 90 82} // "lake___H.lev"
00000007{
05{B1 97 89 8E 94} // "Nitro"
00000009{
...
}...
}...
Post edited December 14, 2017 by nicode
I'm writing some library and toolset based on nico's great research to make this possible in the future.

@Nico; I've noticed smaller bugs in your documentation. The Environment structure seems to be optional, and the vertex lights and bounding box are part of the Secteur structure (you placed them following it IIRC) which makes sense as it requires the vertex count of that instance. At least PowerVR and the 3Dfx build handle BL4 like that. Would've contacted you privately, but I don't know any contact methods D:
Post edited May 06, 2018 by RayKoopa
avatar
RayKoopa: Would've contacted you privately, but I don't know any contact methods D:
nico@nicode.net :)
You can now do this with my C# library at https://github.com/Syroot/Pod !
A big thanks to @nicode again for his wonderful documentation of BL4 saving me a lot of reversing legwork myself (gosh is it a horrible format or what).

Here's some sample code and the results in the attachment!

private static readonly string[] _competitorNames = new[]
{
 "svfn",
 "pnzr667",
 "Cyantusk",
 "Darkriot",
 "Kenno",
 "glhrmfrt",
 "katywing"
};

private static void PlayWithBeltane()
{
 Circuit circuit = new Circuit(@"Circuits\Backup\Beltane.bl4");
 for (int i = 0; i < 7; i++)
 {
  circuit.CompetitorsEasy.Competitors[i].Name = _competitorNames[i];
  circuit.CompetitorsNormal.Competitors[i].Name = _competitorNames[i];
  circuit.CompetitorsHard.Competitors[i].Name = _competitorNames[i];
 }
 circuit.Save(@"Circuits\Beltane.bl4");
}
Attachments:
unknown.jpg (145 Kb)
Post edited June 17, 2018 by RayKoopa