Troubleshooting/Blam: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (the matrix shall not be forgotten)
(updating for OniX 1.0.0)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{UpdatedForOniX|1.0.0}}
{{fmbox
  | text = The [[Daodan DLL]] and [[OniX]] solve the most common causes of crashes in Windows, and the [[FERAL|Intel build]] of the Mac app implements many fixes as well. But if you are still encountering crashes while using the most stable Oni available for your system, read on: chances are that your crash is documented below.
  }}
[[Image:Blam!.png|right]]
[[Image:Blam!.png|right]]
"Blam!" is a recurrent phrase in Bungie lore, with violent or otherwise impactful connotations. The Oni community mainly uses "blam" to designate a crash of the Oni app, because of the dialog that pops up on such occasions. The actual "damn!"/"Blam, Oni crashed" dialog only appears for Windows builds, but the Mac Oni app can crash too, for more or less the same reasons, hence the general use of "blam" for whenever Oni runs into trouble and suddenly quits.
"Blam!" is a [[Blam (meme)|recurring phrase in Bungie lore]] with violent or otherwise impactful connotations. The Oni community mainly uses "blam" to refer to a crash of the Oni app, because of the dialog that pops up on such occasions. The actual "damn!"/"Blam, Oni crashed" dialog only appears for Windows builds, but the Mac Oni app can crash too, for more or less the same reasons, hence the general use of "blam" for whenever Oni runs into trouble and suddenly quits.
 
This article is a little bit technical, so it's important to point out first that the '''[[Daodan DLL]]''' solves the most common causes of crashes in Windows, and the [[FERAL|Intel build]] of the Mac app implements many fixes as well. But if you are still encountering crashes while using the most stable Oni available for your system, read on: chances are that your crash is documented below.
 
;"Blam!" in Bungie lore
:The onomatopoeia was coined by Robert ("Robt") McLees in 1995 or so, and was commonly used by Bungie staff to emphasize multiplayer kills. Occurrences are disseminated more or less conspicuously throughout the Myth series: the most prominent ingame occurrence is probably in Myth II's [http://myth.bungie.org/legends/fieldguide/f2-12_stair_grief.html Stair of Grief], shouted by grenade-happy dwarves.
:Later on, "Blam!" became a codename for Halo, with Bungie going as far as to register the blam.net, blam.org and blam.com domains. See [http://marathon.bungie.org/story/blam.html HERE] for an overview of "Blam sightings" and community speculation from that era.
;"Blam!" in Oni
:Apart from the fatal error dialog (exclusive to the Windows builds), the single most remarkable occurrence of "Blam" in Oni is when Konoko, having disrupted Muro's plan, feels compelled to type "blam! love, little sister" at the Sturmanderung console. This is fully in line with the violent satisfaction of Myth dwarves or Bungie LAN sessions, although a bit misplaced considering that Konoko thwarted ("pwned") Muro at the cost of ''millions'' of innocent lives.
:On a visual level, "Blam" occurs in the form of a (barely readable) badge worn by [[ACC]] engineers, possibly foreshadowing Konoko's decision to blow up the ACCs (and the engineers) later on. In early development, "British Land & Air Mobile (Transport)" was written on cargo containers, as seen [[:Image:Compound6.JPG|HERE]]; possibly this was either a precursor or an alternative to [[BGI]] (placeholder name meaning "Bad Guys International", which eventually stuck).
:A minor occurrence of "blam" is in kana form, '''buramu ブラム''', as an element of the [[Oni matrix]]. Somewhat strangely, "Blam!" is not referenced at all by Oni's demolitionists (Mad Bombers).


===Blam at startup===
===Blam at startup===
This problem has been traced to the overflow of a particular text buffer -- the one that lists the OpenGL extensions in the '''startup.txt''' file.
This crash, the most notorious of Oni problems, has been traced to the overflow of a particular text buffer which is responsible for storing a list of available OpenGL extensions. When Oni was made, the OpenGL extension list dump was much shorter, and the developers did not allow for a larger dump. Modern graphics cards almost always overflow this buffer.
If your version of Oni just crashed on startup, take a look at that file (it's in your [[Oni (folder)|Oni folder]]). At the end, there should be a rather big list of available OpenGL extensions. If the list cuts off abruptly, that means that startup failed during its writing.


When Oni was written, the OpenGL extension list dump was much shorter, and the developers did not allow for a larger dump. Modern graphics cards almost always cause this overflow.
If your version of Oni just crashed on startup, take a look at '''startup.txt''' (it's in your [[Oni (folder)|Oni folder]]). After a successful run of Oni, there should be a rather big list of OpenGL extensions towards the end of this file. If the list cuts off abruptly or the last line in the file starts with "OpenGL version =", it means that startup failed due to this buffer overflow.


This bug is fixed with the Daodan DLL in Windows, and in the Intel and patched PPC builds in macOS.
This bug is fixed with the Daodan DLL in Windows, and fixed in macOS by the Intel and patched PPC builds.


Below are other causes of crashes, though none of them should affect someone who is playing Oni in a normal way.
Below are other causes of crashes, though none of them should affect someone who is playing Oni in a normal way.

Latest revision as of 19:41, 20 December 2021

Blam!.png

"Blam!" is a recurring phrase in Bungie lore with violent or otherwise impactful connotations. The Oni community mainly uses "blam" to refer to a crash of the Oni app, because of the dialog that pops up on such occasions. The actual "damn!"/"Blam, Oni crashed" dialog only appears for Windows builds, but the Mac Oni app can crash too, for more or less the same reasons, hence the general use of "blam" for whenever Oni runs into trouble and suddenly quits.

Blam at startup

This crash, the most notorious of Oni problems, has been traced to the overflow of a particular text buffer which is responsible for storing a list of available OpenGL extensions. When Oni was made, the OpenGL extension list dump was much shorter, and the developers did not allow for a larger dump. Modern graphics cards almost always overflow this buffer.

If your version of Oni just crashed on startup, take a look at startup.txt (it's in your Oni folder). After a successful run of Oni, there should be a rather big list of OpenGL extensions towards the end of this file. If the list cuts off abruptly or the last line in the file starts with "OpenGL version =", it means that startup failed due to this buffer overflow.

This bug is fixed with the Daodan DLL in Windows, and fixed in macOS by the Intel and patched PPC builds.

Below are other causes of crashes, though none of them should affect someone who is playing Oni in a normal way.

Other text buffer overflows

There are other occasions when Oni dumps large amounts of text, and when the dumped text is larger than the buffer Bungie set up for it, you'll have an overflow, and Oni will crash.

Examples
debugger.txt - another debug log located in the Oni folder
other debug logs enabled with the -debugfiles command line argument
console output in Developer Mode

Debug logs

What you should remember about them :

  • Some debug logs that can cause crashes are only enabled if you choose to do so. (See -debugfiles under command line argument.)
  • You can't disable the default debug logs (debugger.txt and startup.txt), so this cannot prevent the startup Blam. See the "Solution Links" below for patches for this.
  • Some other logs (debug files and console output) are either disabled in the executable you're using, or they're (re)enabled and in that case you may experience a crash.

Non-text buffer overflows

There are other fixed-size buffers that can also overflow and crash Oni.

Movie buffer
As explained here, recording a film that approaches half an hour in length can crash Oni.

Out of range errors

There are a number of situations where Oni will "Blam" that have little to do with buffers. Most often, the engine will attempt to address a region in memory but fail to find the expected data.

Pathfinding
Oni can generate too many pathfinding nodes if a pathfinding grid is inconsistent with the environment (rare).
Switching between characters
Oni will crash if you chr_focus to a character that's not drawn.
Conflicts
Oni will crash if you fire a gun while in control of an active AI
Oni will crash if you "talk" to a neutral AI while in control of it.
(it's a bit more complicated, but who cares?)
Non-existent BSL functions
Oni will crash if you call a non-existent BSL function with the strong syntax.