Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
and now problem is:
This is my LD_LIBRARY_PATH\n
/tools/linux/runtime/i386/lib/i386-linux-gnu:/tools/linux/runtime/i386/lib:/tools/linux/runtime/i386/usr/lib/i386-linux-gnu:/tools/linux/runtime/i386/usr/lib:/usr/lib32:.
End LD_LIBRARY_PATH\n
Setting breakpad minidump AppID = 238460
DEBUG: Steam checks done
BattleBlockTheater: /media/BGBS/BBT_Linux/Core/MemorySystem.cpp:161: void* MemoryBlock::Alloc(unsigned int): Assertion `(!"Got request for zero bytes!")' failed.
Aborted (core dumped)
if (validate_ssbo) {
max_num_buffer_blocks +=
prog->_LinkedShaders->NumShaderStorageBlocks;
} else {
max_num_buffer_blocks +=
prog->_LinkedShaders->NumUniformBlocks;
}
}
}
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
struct gl_linked_shader *sh = prog->_LinkedShaders;
InterfaceBlockStageIndex = new int[max_num_buffer_blocks];[/code]
Though, it also seems to be legitimate to call new [0]...
As said, it doesn't look like mesa is doing anything wrong here, just something uncommon that the game's memory allocator (...why) isn't accounting for.
Anyway after some prodding around in gdb and checking the disassemblies, I found the assert in question and patched it out in the binary.
The fix is easy to apply with a hex editor, simply replace 6 bytes at offset 0x24F2BE with 0x90. This will essentially replace a conditional jump with nops, allowing the function to carry on without giving a damn whether the alloc is zero sized. The game will run just fine this way.
I'm going to let the devs know about it in case they're interested in releasing an update for it.
too bad this fix will break every single time they patch the game. not to mention the average user isn't going to know how to use a hex editor.
they really need to just fix the damn game and stop siloing information behind their support people. these forums exist to allow for information sharing so that people can fix stuff on their own instead of overloading support staff.
for what its worth, I'm on Ubuntu 16.04 with a Radeon R9 390X with the AMDGPU Open Source driver and I'm getting the same issue.
Setting breakpad minidump AppID = 238460
Steam_SetMinidumpSteamID: Caching Steam ID: nnnnnnn [API loaded no]
DEBUG: Steam checks done
BattleBlockTheater: /media/BGBS/BBT_Linux/Core/MemorySystem.cpp:161: void* MemoryBlock::Alloc(unsigned int): Assertion `(!"Got request for zero bytes!")' failed.
Aborted (core dumped)
I informed the support staff at Behemoth of this fix since I already had a ticket open with them from earlier. I don't think they'd heard of it yet; they were quite thankful and said they'd pass the info along to the right people, so I assume a patch isn't too far away now. I made sure to give you credit for figuring it out first, of course.
Great work!
But is it really true that the devs haven't fixed it yet? I notified them over a month ago, and they even replied back to me on it, so that's just laziness on their part if they haven't done anything by now. I still have the emails of my correspondence with the support staff, where I even reminded them it would be smart of them to fix this before the holiday season kicks up, as this was right at the beginning of December.
Geez, what a mess. The fix is so damn easy to apply, too. What a shame.
Oh ok, thanks for the response.
I've also notified their support team about it, and was told it would be relayed to the right people, but never heard back since then.