<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wmjdgla</id>
	<title>OniGalore - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wmjdgla"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/Wmjdgla"/>
	<updated>2026-04-06T20:03:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniUnPacker&amp;diff=16586</id>
		<title>OniUnPacker</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniUnPacker&amp;diff=16586"/>
		<updated>2010-06-06T18:11:47Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniUnPacker (OUP)&#039;&#039;&#039;, written by [[User:Admin|Alloc]], provides a file manager GUI allowing one to explore, view and edit (in binary) all data within Oni&#039;s .dat/.raw files. It is able to import and export all data while allowing one to preview some of them. Additionally, OUP is able to determine dependencies among Oni&#039;s data and can perform conversion between level-database and .dat/.raw/.sep files. OUP is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
{|align=right&lt;br /&gt;
|[[Image:OBD.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is [http://websvn.chrilly.net/filedetails.php?repname=Oni2&amp;amp;path=%2Foup%2Fbin_releases%2Foniunpacker_0.34b.rar 0.34b] and you can look [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fbin_releases%2F#_oup_bin_releases_ here] for past releases. Sources of specific releases can be found [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Freleases%2F#_oup_releases_ here] and for the source I&#039;m working on currently, [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fcurrent%2F#_oup_current_ here]. More info on the source code can be found [[OBD:OUP/source|here]] (Delphi 2006, should be working with Delphi 2005 too).&lt;br /&gt;
&lt;br /&gt;
If you want to use the &amp;quot;Binary .dat-Editor&amp;quot;-tool you should also get all files from [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fstructdefs%2F#_oup_structdefs_ here]. Read the section &amp;quot;Structure Definitions&amp;quot; a few lines below ;)&lt;br /&gt;
&lt;br /&gt;
=== Structure Definitions ===&lt;br /&gt;
Since v0.29a OUP supports so called &amp;quot;Structure Definition Files&amp;quot;. These files are simple text files which add easy to view and edit masks in the &amp;quot;Binary .dat-Editor&amp;quot;-tool for each supported filetype. To use those files just get the .txt-files from [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fstructdefs%2F#_oup_structdefs_ here] and put them in a subdirectory called &amp;quot;StructDefs&amp;quot; where the OniUnPacker.exe resides.&lt;br /&gt;
&lt;br /&gt;
=== Features in 0.34a ===&lt;br /&gt;
*Create level-database based on a .dat/.raw/.sep (adds even more functions later, like adding, deleting files)&lt;br /&gt;
*Create a .dat/.raw/.sep structure based on a level-database&lt;br /&gt;
*View, edit, import and export the data of the files in the .dat and .raw (with little helpers as a ValueViewer and the StructureViewer) easily&lt;br /&gt;
*Extract ONI&#039;s data&lt;br /&gt;
*Preview [[TXMP]]s (textures), [[TXAN]]s (texture animations), [[TXMB]]s (big image maps (as far as I know they are only used for the intro/outro splashscreens and the backgrounds in the menus)) &amp;amp; [[PSpc]]s&lt;br /&gt;
*Replace TXMPs with image-files&lt;br /&gt;
*Associate OUP with .dat-files and/or .oldb-files (OUP LevelDataBase) and/or .opf-files (OUP PatchFiles)&lt;br /&gt;
&lt;br /&gt;
=== Primary goals ===&lt;br /&gt;
*Complete rebuilding of level-archives out of a database file so you can change just anything&lt;br /&gt;
*Easy creation of patches for level-archives&lt;br /&gt;
*Frontend for easily editing any filetype or extracting/reimporting it in case of 3D data&lt;br /&gt;
*(Adding completely new levels for the unused levelnumbers (5, 7, 15, 16, 17, 20-127) ?)&lt;br /&gt;
&lt;br /&gt;
=== [[OBD:OUP/History|Version History]] ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developers ===&lt;br /&gt;
[[User:Admin|Alloc]]&amp;lt;br&amp;gt;&lt;br /&gt;
Contributions:&lt;br /&gt;
*Main resource knowledge: [[User:ssg|ssg]]&lt;br /&gt;
*Cheerleading, nagging, and oh, maybe 2 or 3 actually useful contributions : [[User:Geyser|geyser]]&lt;br /&gt;
*SNDD Export-converter: [[User:Kumo|Kumo]]&lt;br /&gt;
*New knowledge about some filetypes, other Oni-internal info: [[User:SFeLi|SFeLi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Thanks to ===&lt;br /&gt;
&lt;br /&gt;
==== SSG ====&lt;br /&gt;
I would never have started the OUP-project if he had not created this great website with info about all filetypes in .dat-files and the structure of .dats in general. And he&#039;s always answering me new questions and requesting new stuff for OUP or reporting bugs ... BIG THANK YOU =)&lt;br /&gt;
&lt;br /&gt;
==== Geyser ====&lt;br /&gt;
Well, he is probably the second most important reason why I started OUP. And he is always begging me for weird new stuff too ... And finding out what the BodyAnimationPart of TRAMs are telling us was a really great job ... Hope you will *not* stop working with me on that project and the other projects you are involved in.&lt;br /&gt;
&lt;br /&gt;
==== Kumo ====&lt;br /&gt;
Even if he was not involved in OUPs developing progress directly (besides the SNDD to WAV decoder, thanks for that too) he was the only german one I could regularly talk to directly. Had many nice chats with you, thanks man.&lt;br /&gt;
&lt;br /&gt;
==== SFeLi ====&lt;br /&gt;
Yeah, good thing you were not around OCF earlier. I do not think that would have had any work for myself otherwise ;)  But on the other side you also do a really great job so it would not have been too bad if you had found us earlier. And thanks for the discussions about Oni and its binary stuff.&lt;br /&gt;
&lt;br /&gt;
==== My parents ====&lt;br /&gt;
I am really grateful that they never found out what I am spending my time on instead of spending it on my schoolwork. Otherwise OUP would not be what it is today ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== A few screenshots ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:OUP_main.jpg&lt;br /&gt;
Image:OUP_binedit.jpg&lt;br /&gt;
Image:OUP_valueedit.jpg&lt;br /&gt;
Image:OUP_txmpreplace.jpg&lt;br /&gt;
Image:OUP_preview.jpg&lt;br /&gt;
Image:OUP_extractor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example of replaced texture files ===&lt;br /&gt;
Replaced all of the fire*-textures in level4/airport assault with an test-bitmap and set transparency to 1&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:oup_edited_fire.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniUnPacker&amp;diff=16585</id>
		<title>OniUnPacker</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniUnPacker&amp;diff=16585"/>
		<updated>2010-06-06T17:53:17Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniUnPacker (OUP)&#039;&#039;&#039;, written by [[User:Admin|Alloc]], provides a file manager GUI allowing one to explore, view and edit (in binary) all data within Oni&#039;s .dat/.raw files. It is able to import and export all data while allowing one to preview some of them. Additionally, OUP is able to determine dependencies among Oni&#039;s data and can perform conversion between level-database and .dat/.raw/.sep files. OUP is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
{|align=right&lt;br /&gt;
|[[Image:OBD.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is [http://websvn.chrilly.net/filedetails.php?repname=Oni2&amp;amp;path=%2Foup%2Fbin_releases%2Foniunpacker_0.34b.rar 0.34b] and you can look [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fbin_releases%2F#_oup_bin_releases_ here] for past releases. Sources of specific releases can be found [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Freleases%2F#_oup_releases_ here] and for the source I&#039;m working on currently, [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fcurrent%2F#_oup_current_ here]. More info on the source code can be found [[OBD:OUP/source|here]] (Delphi 2006, should be working with Delphi 2005 too).&lt;br /&gt;
&lt;br /&gt;
If you want to use the &amp;quot;Binary .dat-Editor&amp;quot;-tool you should also get all files from [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fstructdefs%2F#_oup_structdefs_ here]. Read the section &amp;quot;Structure Definitions&amp;quot; a few lines below ;)&lt;br /&gt;
&lt;br /&gt;
=== Structure Definitions ===&lt;br /&gt;
Since v0.29a OUP supports so called &amp;quot;Structure Definition Files&amp;quot;. These files are simple text files which add easy to view and edit masks in the &amp;quot;Binary .dat-Editor&amp;quot;-tool for each supported filetype. To use those files just get the .txt-files from [http://websvn.chrilly.net/listing.php?repname=Oni2&amp;amp;path=%2Foup%2Fstructdefs%2F#_oup_structdefs_ here] and put them in a subdirectory called &amp;quot;StructDefs&amp;quot; where the OniUnPacker.exe resides.&lt;br /&gt;
&lt;br /&gt;
=== Features in 0.34a ===&lt;br /&gt;
*Create level-database based on a .dat/.raw/.sep (adds even more functions later, like adding, deleting files)&lt;br /&gt;
*Create a .dat/.raw/.sep structure based on a level-database&lt;br /&gt;
*View, edit, import and export the data of the files in the .dat and .raw (with little helpers as a ValueViewer and the StructureViewer) easily&lt;br /&gt;
*Extract ONI&#039;s data&lt;br /&gt;
*Preview [[TXMP]]s (textures), [[TXAN]]s (texture animations), [[TXMB]]s (big image maps (as far as I know they are only used for the intro/outro splashscreens and the backgrounds in the menus)) &amp;amp; [[PSpc]]s&lt;br /&gt;
*Replace TXMPs with image-files&lt;br /&gt;
*Associate OUP with .dat-files and/or .oldb-files (OUP LevelDataBase) and/or .opf-files (OUP PatchFiles)&lt;br /&gt;
&lt;br /&gt;
=== Primary goals ===&lt;br /&gt;
*Complete rebuilding of level-archives out of a database file so you can change just anything&lt;br /&gt;
*Easy creation of patches for level-archives&lt;br /&gt;
*Frontend for easily editing any filetype or extracting/reimporting it in case of 3D data&lt;br /&gt;
*(Adding completely new levels for the unused levelnumbers (5, 7, 15, 16, 17, 20-127) ?)&lt;br /&gt;
&lt;br /&gt;
=== [[OBD:OUP/History|History]] ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developers ===&lt;br /&gt;
[[User:Admin|Alloc]]&amp;lt;br&amp;gt;&lt;br /&gt;
Contributions:&lt;br /&gt;
*Main resource knowledge: [[User:ssg|ssg]]&lt;br /&gt;
*Cheerleading, nagging, and oh, maybe 2 or 3 actually useful contributions : [[User:Geyser|geyser]]&lt;br /&gt;
*SNDD Export-converter: [[User:Kumo|Kumo]]&lt;br /&gt;
*New knowledge about some filetypes, other Oni-internal info: [[User:SFeLi|SFeLi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Thanks to ===&lt;br /&gt;
&lt;br /&gt;
==== SSG ====&lt;br /&gt;
I would never have started the OUP-project if he had not created this great website with info about all filetypes in .dat-files and the structure of .dats in general. And he&#039;s always answering me new questions and requesting new stuff for OUP or reporting bugs ... BIG THANK YOU =)&lt;br /&gt;
&lt;br /&gt;
==== Geyser ====&lt;br /&gt;
Well, he is probably the second most important reason why I started OUP. And he is always begging me for weird new stuff too ... And finding out what the BodyAnimationPart of TRAMs are telling us was a really great job ... Hope you will *not* stop working with me on that project and the other projects you are involved in.&lt;br /&gt;
&lt;br /&gt;
==== Kumo ====&lt;br /&gt;
Even if he was not involved in OUPs developing progress directly (besides the SNDD to WAV decoder, thanks for that too) he was the only german one I could regularly talk to directly. Had many nice chats with you, thanks man.&lt;br /&gt;
&lt;br /&gt;
==== SFeLi ====&lt;br /&gt;
Yeah, good thing you were not around OCF earlier. I do not think that would have had any work for myself otherwise ;)  But on the other side you also do a really great job so it would not have been too bad if you had found us earlier. And thanks for the discussions about Oni and its binary stuff.&lt;br /&gt;
&lt;br /&gt;
==== My parents ====&lt;br /&gt;
I am really grateful that they never found out what I am spending my time on instead of spending it on my schoolwork. Otherwise OUP would not be what it is today ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== A few screenshots ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:OUP_main.jpg&lt;br /&gt;
Image:OUP_binedit.jpg&lt;br /&gt;
Image:OUP_valueedit.jpg&lt;br /&gt;
Image:OUP_txmpreplace.jpg&lt;br /&gt;
Image:OUP_preview.jpg&lt;br /&gt;
Image:OUP_extractor.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example of replaced texture files ===&lt;br /&gt;
Replaced all of the fire*-textures in level4/airport assault with an test-bitmap and set transparency to 1&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:oup_edited_fire.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=16584</id>
		<title>OniSplit</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=16584"/>
		<updated>2010-06-06T16:47:19Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniSplit&#039;&#039;&#039;, written by [[User_talk:Neo|Neo]], is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It is able to import and export many kinds of Oni game data, such as textures, sound, 3D models, level geometry &amp;amp; combat animations and is also able to split &amp;amp; recombine Oni&#039;s data files. It&#039;s functions supersede those of [[OUP]] &amp;amp; [[OME]] and is currently the community&#039;s modding tool of choice. &lt;br /&gt;
&lt;br /&gt;
==Getting it==&lt;br /&gt;
===Download links===&lt;br /&gt;
* Latest version of OniSplit: [http://mods.oni2.net/system/files/OniSplit.exe_.zip v0.9.40]&lt;br /&gt;
* A GUI for OniSplit for Windows can be found [http://oni.bungie.org/community/forum/viewtopic.php?pid=9323#p9323 HERE.]&lt;br /&gt;
* A GUI for OniSplit for the Mac is found [[AETools|HERE]].&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;amp;displaylang=en .NET 2.0]&lt;br /&gt;
* [http://www.go-mono.com/mono-downloads/download.html Latest version of mono (requires OS X 10.4+)]&lt;br /&gt;
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Using it==&lt;br /&gt;
The following actions are listed when calling OniSplit with the &amp;lt;tt&amp;gt;-help&amp;lt;/tt&amp;gt; option (another informative option is &amp;lt;tt&amp;gt;-version&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:The command line must be preceded by either &amp;lt;tt&amp;gt;OniSplit.exe&amp;lt;/tt&amp;gt; (Windows) or &amp;lt;tt&amp;gt;mono OniSplit.exe&amp;lt;/tt&amp;gt; (Mac OS)&lt;br /&gt;
::If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.&lt;br /&gt;
:::On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.&lt;br /&gt;
====Conversion between .dat and .oni====&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-export &amp;lt;target directory&amp;gt; &amp;lt;source file&amp;gt;&amp;lt;/tt&amp;gt;||Exports source file (.dat) to target directory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; tries to get target file format from source SNDD&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:sep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)&lt;br /&gt;
|}&lt;br /&gt;
:Note that -import will search subdirectories too. If you find having hundreds or thousand of files .oni in one directory to be unmanageable you can always group them in subdirectories anyway you like. The only exception is that a subdirectory named &amp;quot;noimport&amp;quot; or &amp;quot;_noimport&amp;quot; is always ignored.&lt;br /&gt;
&lt;br /&gt;
====Management of .oni files====&lt;br /&gt;
Unless mentioned otherwise, the filename field supports wildcards (&amp;quot;*&amp;quot;).&lt;br /&gt;
:OniSplit consistently detects and manages &amp;quot;dependencies&amp;quot; of .oni files.&lt;br /&gt;
::The dependencies of a file are looked up in its folder and subfolders.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-deps &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Displays a list of .oni files that the specified .oni file depends on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-copy &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Copies .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:overwrite &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; overwrites any existing .oni files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:delete &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; doesn&#039;t overwrite; deletes source files&lt;br /&gt;
|}&lt;br /&gt;
====Conversion between .oni/.dat and 3rd party formats====&lt;br /&gt;
=====Textures=====&lt;br /&gt;
Unless mentioned otherwise, source filenames support wildcards. See [[AE:Modifying textures|HERE]] for a detailed tutorial.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dds &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:tga &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:png &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format&lt;br /&gt;
|-&lt;br /&gt;
|align=right|&amp;lt;tt&amp;gt;-create:txmp &amp;lt;targer directory&amp;gt; [-genmipmaps] [-nouwrap] [-novwrap]&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;[-envmap:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|valign=top|Creates .oni file in target directory from source image&lt;br /&gt;
|}&lt;br /&gt;
The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMPs from a .dat file.&lt;br /&gt;
&lt;br /&gt;
=====Models=====&lt;br /&gt;
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can be exported to the Wavefront .obj and COLLADA .dae formats. For details see [[AE:Importing character models|HERE]] and [[AE:Importing weapon models|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:obj &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Collada files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:m3gm &amp;lt;target directory&amp;gt; [-tex:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a M3GM .oni in target directory from an .obj file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:trbs &amp;lt;target directory&amp;gt; [-cel] [-normals] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a TRBS .oni in target directory from a .dae file&lt;br /&gt;
|}&lt;br /&gt;
The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.&lt;br /&gt;
:TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see [[AE:Importing character models|HERE]] for details.&lt;br /&gt;
::Imported geometry must only contain triangles. See [[AE:Importing character models|HERE]] for additional options (e.g., cel-shading)&lt;br /&gt;
&lt;br /&gt;
====Levels====&lt;br /&gt;
OniSplit can convert AKEV files (level geometry) and the associated file types to and from DAE format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;name of AKEV.oni source file&amp;gt;&amp;lt;/tt&amp;gt;   Extracts all AKEV and related instances to Collada files&lt;br /&gt;
&lt;br /&gt;
The next two steps are used on a folder in which you have placed the DAE and XML-formatted instances of the required files, as well as textures in TGA format. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; -genmipmaps -format:dxt1 &amp;lt;source directory/&amp;gt;*.xml&amp;lt;/tt&amp;gt;   Converts all AKEV and related instances to .oni files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file name&amp;gt;.dat&amp;lt;/tt&amp;gt;   The standard command for creating .dat/.raw files from .oni files (remember to use the import:sep option on Mac!)&lt;br /&gt;
&lt;br /&gt;
=====Misc=====&lt;br /&gt;
Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:wav &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .wav into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:aif &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:txt &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SUBT as .txt into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:subt &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a SUBT .oni file in target folder from a .txt file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====XML=====&lt;br /&gt;
One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.&lt;br /&gt;
::Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for [[BINA]], [[CONS]], [[DOOR]], [[DPge]], [[FILM]], [[HPge]], [[IGHH]], [[IPge]], [[M3GM]], [[OBAN]], [[ONCC]], [[ONCV]], [[ONLD]], [[ONLV]], [[ONGS]], [[ONSK]], [[ONVL]], [[ONWC]], [[OPge]], [[OSBD]], [[PSpc]], [[PSpL]], [[PSUI]], [[TRAC]], [[TRAM]], [[TRIG]], [[TRGE]], [[TRMA]], [[TRSC]], [[TXMB]], [[TXMP]], [[WMCL]], [[WMDD]], [[WMM_]], [[WPge]].&lt;br /&gt;
:::For detailed examples and tutorials, see [[AE:XML|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:xml &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all instances to XML files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates an .oni file in the target directory from an XML file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BIG NOTE OF WARNING: some of the above instance types (most importantly ONWC) contain geometry data (M3GM) embedded in them. The geometry can round-trip through xml but versions of OniSplit up to and including 0.9.26 produce an invalid .oni file that may cause Oni to crash.&lt;br /&gt;
[[Category:Modding tools]][[Category:Articles that need updating]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change Log==&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.40&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for exporting/importing [[OBD:BINA/SABD|sound animations]] to/from xml files&lt;br /&gt;
:* better Collada export for environment&lt;br /&gt;
:* support for full color transparent textures (-format:bgra32 on the command line, ARGB8888 format in an xml file)&lt;br /&gt;
:* different (hopefully better) xml export format for animations (this one is actually from 0.9.38 but since that wasn&#039;t mentioned here...)&lt;br /&gt;
:* a more or less complete animation importer. This one deservers some notes:&lt;br /&gt;
::-unlike other importers that produce .oni files this one produces and .xml file (similar to the one you get when exporting a TRAM)&lt;br /&gt;
::when you do&lt;br /&gt;
  onisplit -create:tram target_dir animation.dae&lt;br /&gt;
::in the target dir you&#039;ll get a TRAManimation.xml file.&lt;br /&gt;
::You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.&lt;br /&gt;
::-For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.&lt;br /&gt;
::-Note that the geometry that is present inside the Collada file is used to compute the &amp;quot;vertical extents&amp;quot; so it better be the same or close to the one the animation is intended for.&lt;br /&gt;
::-The biggest problem are the attacks. While it&#039;s not difficult to add attacks to the xml file, computing the necessary &amp;quot;extents&amp;quot; is not going to be easy. I guess in the end I&#039;ll have to add some command to OniSplit to do it.&lt;br /&gt;
::-Everything else that I forgot :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.37.zip OniSplit v0.9.37]&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for transparency in the environment importer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.35&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* conversion of recorded films (.dat binary files) to xml files that can be used to create FILM .oni files&lt;br /&gt;
&lt;br /&gt;
    OniSplit film2xml out_dir film.dat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.34&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* SNDD importer&lt;br /&gt;
::-WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.&lt;br /&gt;
::-AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.&lt;br /&gt;
::Example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  OniSplit -create out_dir test.aif&lt;br /&gt;
  OniSplit -create out_dir test.wav&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*LOD support for creating TRBS files. This can be done by creating an xml file containing the following:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_4.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_5.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::and running the command (assuming the created xml file&#039;s name is barabus_body.xml):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir barabus_body.xml&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not strictly necessary to create 5 different geometries for each LOD. The following works just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*An xml file can contain &amp;quot;links&amp;quot; to other xml/obj/dae files. For example you can have the following line in an ONWC xml file:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Assuming the file pistol.obj exists in the same directory an M3GM .oni file will be automatically created from it.&lt;br /&gt;
&lt;br /&gt;
::Relative paths work just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;geometry/pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*The -create:subt, -create:txmp and -create:m3gm are sort of obsolete. They still work but now you can simply use &#039;-create&#039; (or just &#039;create&#039;):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir crate.dae&lt;br /&gt;
  OniSplit create out_dir -format:bgr555 -genmipmaps pic.tga&lt;br /&gt;
  OniSplit create out_dir subtitles.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Work in progress: the AKEV importer now reads Collada materials so the resulting AKEV is textured.&lt;br /&gt;
&lt;br /&gt;
:Sample levels:&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/noglass.zip TestLevel1] -- This level should look like this in-game: &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 1.jpg|Image 1]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 2.jpg|Image 2]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 3.jpg|Image 3]]&amp;lt;/u&amp;gt;&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/hexagon.zip TestLevel2] -- This level should look like this in-game: &amp;lt;u&amp;gt;[http://edt.oni2.net/images/hexagon1.jpg Image 1]&amp;lt;/u&amp;gt;&lt;br /&gt;
:A zip file contains the minimum needed to get a new level running in Oni. To &amp;quot;compile&amp;quot; a level extract it to a folder and run the following commands:&lt;br /&gt;
 &lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 *.xml&lt;br /&gt;
  OniSplit -import:nosep . Oni\GameDataFolder\level1_Final.dat&lt;br /&gt;
&lt;br /&gt;
:(Of course, you need to change the output .dat file path to match your Oni installation path)&lt;br /&gt;
&lt;br /&gt;
:Note1: The hexagon level needs to be scaled up to work properly. Use the envscale option for this:&lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 -envscale:40 *.xml&lt;br /&gt;
&lt;br /&gt;
:Note2: I&#039;ve updated the level files to contain 20 empty corpses to prevent crashes.&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=16581</id>
		<title>BSL:BFW Scripting Language</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:BFW_Scripting_Language&amp;diff=16581"/>
		<updated>2010-06-06T03:07:46Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bungie Scripting Language (or BSL)&#039;&#039;&#039; is what Oni scripts are written in. Being a scripting language, it is far more limited in scope and usage than a &amp;quot;real&amp;quot; programming language, as it was designed only to move events forward in the game, not to build programs.&lt;br /&gt;
&lt;br /&gt;
==What Are Scripts?==&lt;br /&gt;
Scripts are the files that drive level logic, environment effects, and cutscenes. Physically speaking, they are the .bsl files inside the folder [[IGMD|Oni/GameDataFolder/IGMD/]]. By editing scripts, you can alter how the game plays.&lt;br /&gt;
&lt;br /&gt;
==Editing Scripts==&lt;br /&gt;
Scripts can be edited with the simplest of word-processing programs, such as the built-in WordPad (Windows) or TextEdit (Mac). They can be edited simply by typing inside the file. When saving, you must either ensure that the suffix is .bsl or that you use the suffix .txt and afterwards change it to .bsl.&lt;br /&gt;
&lt;br /&gt;
- To learn BSL by example, you can read the .bsl files in Oni&#039;s IGMD folder and draw connections to the events in the game that were produced by those scripts.&amp;lt;br&amp;gt;&lt;br /&gt;
- For a primer in writing BSL, see the Tutorials section below.&amp;lt;br&amp;gt;&lt;br /&gt;
- For a thorough listing of what&#039;s possible in BSL (a reference, not a primer), see the Knowledge Database below.&amp;lt;br&amp;gt;&lt;br /&gt;
- Typing &#039;&#039;&#039;&#039;&#039;dump_docs&#039;&#039;&#039;&#039;&#039; in the game console will generated the file &#039;&#039;&#039;script_commands.txt&#039;&#039;&#039; listing all BSL commands &amp;amp; variables.&lt;br /&gt;
&lt;br /&gt;
==Scripted Mods==&lt;br /&gt;
Scripted mods are great examples of what can be accomplished by editing scripts. They replace or add to Oni&#039;s .bsl files to create interesting and often amusing results. They can change everything from the fog to how the characters and level interact. However, they cannot add new characters or change the level layout, as that data is fixed by the [[OBD|Binaries]]. They are great examples of what can be achieved simply by typing into a text file. The possibilities are simply endless. &lt;br /&gt;
&lt;br /&gt;
Probably the best specimens of scripted mods are the [[AE:OTA|Oni Team Arena]] scripts. Based on the desire for a multi-player mode in Oni, and inspired by Unreal Tournament, they augment Oni&#039;s hand-to-hand combat and gunplay with a scoring system much like Unreal Tournament&#039;s DeathMatch.&lt;br /&gt;
&lt;br /&gt;
Other scripted mods range from free-for-all arenas to objective-based missions and enhancements of the original levels. They can spice up the gameplay and provide a more exciting experience to those who have finished the game. They keep the game alive, outside of its original levels.&lt;br /&gt;
&lt;br /&gt;
===Downloads===&lt;br /&gt;
Downloads of OTA Mods are available at the [[AE:OTA|Oni Team Arena page]].&lt;br /&gt;
&lt;br /&gt;
Downloads for other scripted mods mave been gathered here: [http://your-mom.oni2.net/Downloads.htm here] and [http://script10000.oni2.net/scripts.html here.]&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
For the practical minds who don&#039;t care (too much) about theory, the [[BSL:Tutorial]] page offers the following paths for you to explore:&lt;br /&gt;
*Wanna make minor (yet cool-looking) changes to the original level logic? [[BSL:Tutorial/Modification|Read this]].&lt;br /&gt;
*Wanna script a &amp;quot;patch&amp;quot; that&#039;s effective in every level but doesn&#039;t change the original logic? [[IGMD/global|Then go here]].&lt;br /&gt;
*Wanna create completely new level logic from scratch? [[BSL:Tutorial/Scratch|Here you are.]]&lt;br /&gt;
&lt;br /&gt;
==Knowledge Database==&lt;br /&gt;
*[[BSL:Statements|Statements]]&lt;br /&gt;
*[[BSL:Variables|Variables]]&lt;br /&gt;
*[[BSL:Functions|Functions]]&lt;br /&gt;
*[[BSL:Operators|Operators]]&lt;br /&gt;
*[[BSL:Data|Data types]]&lt;br /&gt;
*[[BSL:Inventory|Inventory management]]&lt;br /&gt;
&lt;br /&gt;
Documentation that describes the locations that BSL scripts reside in:&lt;br /&gt;
*[[IGMD|IGMD folder]]&lt;br /&gt;
&lt;br /&gt;
==Syntax Overview==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;BSL syntax overview table&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;border-bottom:3px solid grey;&amp;quot;|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&#039;&#039;BSL separators&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Statements|&amp;lt;tt&amp;gt;;&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Comments|&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Statements|&amp;lt;tt&amp;gt;{&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Statements|&amp;lt;tt&amp;gt;}&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;(&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;4&amp;quot; style=&amp;quot;border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;&amp;quot; |&lt;br /&gt;
Click on a separator for details&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;border-bottom:3px solid grey;&amp;quot;|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&#039;&#039;BSL operators&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Variables|&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;!&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;eq&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;ne&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;&amp;lt;&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;&amp;lt;=&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;100px&amp;quot; | [[BSL:Operators|&amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;4&amp;quot; style=&amp;quot;border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;&amp;quot; |&lt;br /&gt;
Click on an operator for details&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;border-bottom:3px solid grey;&amp;quot;|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&#039;&#039;BSL keywords&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;at&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;float&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Statements|&amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;repeat&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;string&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;bool&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;return&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;using&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Statements|&amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;iterate&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;schedule&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Variables|&amp;lt;tt&amp;gt;var&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;every&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Functions|&amp;lt;tt&amp;gt;func&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;over&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Keywords|&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;75px&amp;quot; | [[BSL:Data|&amp;lt;tt&amp;gt;void&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;5&amp;quot; style=&amp;quot;border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;&amp;quot; |&lt;br /&gt;
Click on a keyword for details&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16574</id>
		<title>Oni Model Extractor</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16574"/>
		<updated>2010-06-05T03:57:24Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: Undo revision 16573 by Wmjdgla (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Oni Model Extractor (or OME) ==&lt;br /&gt;
[[Image:ome_screenshot.png|right|v 0.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This is a Java, GUI-based program allowing one to preview and extract character models, 3D objects, images, sounds and some animations in Oni&#039;s [[OBD|.dat]] files. This program is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
&lt;br /&gt;
The detailed functions are as follows:&lt;br /&gt;
*previews &amp;amp; exports [[SNDD]] (sound data) as .wav &#039;&#039;(The author says that it can also export as .aif, but that option is not available from the file type drop-down box when exporting. Anybody knows anything about this? -- wmjdgla)&#039;&#039;&lt;br /&gt;
*previews &amp;amp; exports [[TXMP]] (texture maps) as .png&lt;br /&gt;
*previews &amp;amp; exports [[M3GM]] (3D objects) &amp;amp; [[ONCC]] (3D character models) as 3DS Max files (without animations and smoothing groups) or COLLADA files (without animations)&lt;br /&gt;
*previews [[TRAM]] (character animations) &#039;&#039;(I got an error when trying to preview this. From the readme, I suspect it&#039;s because I didn&#039;t &amp;quot;place JOGL JARs and native OS libraries to the lib/jogl directory&amp;quot;. However the JOGL project has now been merged with GIT, and their website is rather user-unfriendly in the sense that I have no idea how and where to get the JARs and libraries in question. -- wmjdgla)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is 0.65 and you can get it [http://mods.oni2.net/index.php?q=node/52 here] (source included)&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
maybe implement exporting animations to COLLADA in some far future&lt;br /&gt;
&lt;br /&gt;
=== Log ===&lt;br /&gt;
10.11.2006 - the project started.&lt;br /&gt;
&lt;br /&gt;
03.12.2006 - ok, I have made a little movement - it can now parse a dat.&lt;br /&gt;
&lt;br /&gt;
16.12.2006 - well, now it is not enough time to deal with it. So, it is temporarily dead.&lt;br /&gt;
&lt;br /&gt;
17.07.2007 - hmm, some movements have been made: i have rewritten some of OniTools&#039; sources in Java. But what i got was not exactly what i was going to get: i found out, that OniTools have rather poor functionality in sense of viewing Oni multimedia data. I&#039;ll take a break for now, but some time later i&#039;ll return to grab some sources from OniBrowser.&lt;br /&gt;
&lt;br /&gt;
23.11.2007 - so ... a year has already passed&lt;br /&gt;
&lt;br /&gt;
now it can view/extract sounds&lt;br /&gt;
&lt;br /&gt;
25.11.2007 - now it can view/extract images&lt;br /&gt;
&lt;br /&gt;
16.12.2007 - today is saturday, and yesterday was friday; now it can view and extract 3d objects (M3GM)&lt;br /&gt;
&lt;br /&gt;
17.12.2007 - found and fixed a bug: when extracting to 3ds textures were mapped upside-down; also replaced the table with the tree; also slightly modified url&lt;br /&gt;
&lt;br /&gt;
25.12.2007 - oncc viewing/exporting implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (27.01.2008&#039;s night) - extracting from M3GM to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (evening) - extracting from ONCC to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developer ===&lt;br /&gt;
Kuchumov Nikolay, grabbing sources from the whole community&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app is based a bit on &amp;lt;i&amp;gt;OniTools by Ian Patterson&amp;lt;/i&amp;gt;, and mostly &amp;lt;i&amp;gt;OniBrowser by Neo&amp;lt;/i&amp;gt; and this wiki site&amp;lt;br&amp;gt;&lt;br /&gt;
And i also actively used &amp;lt;i&amp;gt;OniUnPacker&amp;lt;/i&amp;gt; for debugging and a little research&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16573</id>
		<title>Oni Model Extractor</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16573"/>
		<updated>2010-06-05T03:56:59Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: Undo revision 16572 by Wmjdgla (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Oni Model Extractor (or OME) ==&lt;br /&gt;
[[Image:ome_screenshot.png|right|v 0.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This is a Java, GUI-based program allowing one to preview and extract character models, 3D objects, images, sounds and some animations in Oni&#039;s [[OBD|.dat]] files. This program is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
&lt;br /&gt;
The detailed functions are as follows:&lt;br /&gt;
*previews &amp;amp; exports [[SNDD]] (sound data) as .wav &#039;&#039;(The author says that it can also export as .aif, but that option is not available from the file type drop-down box when exporting. Anybody knows anything about this? -- wmjdgla)&#039;&#039;&lt;br /&gt;
*previews &amp;amp; exports [[TXMP]] (texture maps) as .png&lt;br /&gt;
*previews &amp;amp; exports [[M3GM]] (3D objects) &amp;amp; [[ONCC]] (3D character models) as 3DS Max files (without animations and smoothing groups) or COLLADA files (without animations)&lt;br /&gt;
*previews [[TRAM]] (character animations) &#039;&#039;(I got an error when trying to preview this. From the readme, I suspect it&#039;s because I didn&#039;t &amp;quot;place JOGL JARs and native OS libraries to the lib/jogl directory&amp;quot;. However the JOGL project has now been merged with GIT, and their website is rather user-unfriendly in the sense that I have no idea how and where to get the JARs and libraries in question -- wmjdgla)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is 0.65 and you can get it [http://mods.oni2.net/index.php?q=node/52 here] (source included)&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
maybe implement exporting animations to COLLADA in some far future&lt;br /&gt;
&lt;br /&gt;
=== Log ===&lt;br /&gt;
10.11.2006 - the project started.&lt;br /&gt;
&lt;br /&gt;
03.12.2006 - ok, I have made a little movement - it can now parse a dat.&lt;br /&gt;
&lt;br /&gt;
16.12.2006 - well, now it is not enough time to deal with it. So, it is temporarily dead.&lt;br /&gt;
&lt;br /&gt;
17.07.2007 - hmm, some movements have been made: i have rewritten some of OniTools&#039; sources in Java. But what i got was not exactly what i was going to get: i found out, that OniTools have rather poor functionality in sense of viewing Oni multimedia data. I&#039;ll take a break for now, but some time later i&#039;ll return to grab some sources from OniBrowser.&lt;br /&gt;
&lt;br /&gt;
23.11.2007 - so ... a year has already passed&lt;br /&gt;
&lt;br /&gt;
now it can view/extract sounds&lt;br /&gt;
&lt;br /&gt;
25.11.2007 - now it can view/extract images&lt;br /&gt;
&lt;br /&gt;
16.12.2007 - today is saturday, and yesterday was friday; now it can view and extract 3d objects (M3GM)&lt;br /&gt;
&lt;br /&gt;
17.12.2007 - found and fixed a bug: when extracting to 3ds textures were mapped upside-down; also replaced the table with the tree; also slightly modified url&lt;br /&gt;
&lt;br /&gt;
25.12.2007 - oncc viewing/exporting implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (27.01.2008&#039;s night) - extracting from M3GM to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (evening) - extracting from ONCC to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developer ===&lt;br /&gt;
Kuchumov Nikolay, grabbing sources from the whole community&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app is based a bit on &amp;lt;i&amp;gt;OniTools by Ian Patterson&amp;lt;/i&amp;gt;, and mostly &amp;lt;i&amp;gt;OniBrowser by Neo&amp;lt;/i&amp;gt; and this wiki site&amp;lt;br&amp;gt;&lt;br /&gt;
And i also actively used &amp;lt;i&amp;gt;OniUnPacker&amp;lt;/i&amp;gt; for debugging and a little research&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16572</id>
		<title>Oni Model Extractor</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16572"/>
		<updated>2010-06-05T03:53:22Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Oni Model Extractor (or OME) ==&lt;br /&gt;
[[Image:ome_screenshot.png|right|v 0.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This is a Java, GUI-based program allowing one to preview and extract character models, 3D objects, images, sounds and some animations in Oni&#039;s [[OBD|.dat]] files. This program is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
&lt;br /&gt;
The detailed functions are as follows:&lt;br /&gt;
*previews &amp;amp; exports [[SNDD]] (sound data) as .wav &#039;&#039;(The author says that it can also export as .aif, but that option is not available from the file type drop-down box when exporting. Anybody knows anything about this? -- wmjdgla)&#039;&#039;&lt;br /&gt;
*previews &amp;amp; exports [[TXMP]] (texture maps) as .png&lt;br /&gt;
*previews &amp;amp; exports [[M3GM]] (3D objects) &amp;amp; [[ONCC]] (3D character models) as 3DS Max files (without animations and smoothing groups) or COLLADA files (without animations)&lt;br /&gt;
*previews [[TRAM]] (character animations) &#039;&#039;(I got an error when trying to preview this. From the readme, I suspect it&#039;s because I didn&#039;t &amp;quot;place JOGL JARs and native OS libraries to the lib/jogl directory&amp;quot;. However the JOGL project has now been merged with GIT, and their website is rather user-unfriendly in the sense that I have no idea how and where to get the JARs and libraries in question. -- wmjdgla)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is 0.65 and you can get it [http://mods.oni2.net/index.php?q=node/52 here] (source included)&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
maybe implement exporting animations to COLLADA in some far future&lt;br /&gt;
&lt;br /&gt;
=== Log ===&lt;br /&gt;
10.11.2006 - the project started.&lt;br /&gt;
&lt;br /&gt;
03.12.2006 - ok, I have made a little movement - it can now parse a dat.&lt;br /&gt;
&lt;br /&gt;
16.12.2006 - well, now it is not enough time to deal with it. So, it is temporarily dead.&lt;br /&gt;
&lt;br /&gt;
17.07.2007 - hmm, some movements have been made: i have rewritten some of OniTools&#039; sources in Java. But what i got was not exactly what i was going to get: i found out, that OniTools have rather poor functionality in sense of viewing Oni multimedia data. I&#039;ll take a break for now, but some time later i&#039;ll return to grab some sources from OniBrowser.&lt;br /&gt;
&lt;br /&gt;
23.11.2007 - so ... a year has already passed&lt;br /&gt;
&lt;br /&gt;
now it can view/extract sounds&lt;br /&gt;
&lt;br /&gt;
25.11.2007 - now it can view/extract images&lt;br /&gt;
&lt;br /&gt;
16.12.2007 - today is saturday, and yesterday was friday; now it can view and extract 3d objects (M3GM)&lt;br /&gt;
&lt;br /&gt;
17.12.2007 - found and fixed a bug: when extracting to 3ds textures were mapped upside-down; also replaced the table with the tree; also slightly modified url&lt;br /&gt;
&lt;br /&gt;
25.12.2007 - oncc viewing/exporting implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (27.01.2008&#039;s night) - extracting from M3GM to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (evening) - extracting from ONCC to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developer ===&lt;br /&gt;
Kuchumov Nikolay, grabbing sources from the whole community&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app is based a bit on &amp;lt;i&amp;gt;OniTools by Ian Patterson&amp;lt;/i&amp;gt;, and mostly &amp;lt;i&amp;gt;OniBrowser by Neo&amp;lt;/i&amp;gt; and this wiki site&amp;lt;br&amp;gt;&lt;br /&gt;
And i also actively used &amp;lt;i&amp;gt;OniUnPacker&amp;lt;/i&amp;gt; for debugging and a little research&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16571</id>
		<title>Oni Model Extractor</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16571"/>
		<updated>2010-06-05T03:52:25Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Oni Model Extractor (or OME) ==&lt;br /&gt;
[[Image:ome_screenshot.png|right|v 0.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This is a Java, GUI-based program allowing one to preview and extract character models, 3D objects, images, sounds and some animations in Oni&#039;s [[OBD|.dat]] files. This program is now no longer being actively maintained or developed by the author and its functions have since been superseded by [[Onisplit]].&lt;br /&gt;
&lt;br /&gt;
The detailed functions are as follows:&lt;br /&gt;
*previews &amp;amp; exports [[SNDD]] (sound data) as .wav &#039;&#039;(The author says that it can also export as .aif, but that option is not available from the file type drop-down box when exporting. Anybody knows anything about this? -- wmjdgla)&#039;&#039;&lt;br /&gt;
*previews &amp;amp; exports [[TXMP]] (texture maps) as .png&lt;br /&gt;
*previews &amp;amp; exports [[M3GM]] (3D objects) &amp;amp; [[ONCC]] (3D character models) as 3DS Max files (without animations and smoothing groups) or COLLADA files (without animations)&lt;br /&gt;
*previews [[TRAM]] (character animations) &#039;&#039;(I got an error when trying to preview this. From the readme, I suspect it&#039;s because I didn&#039;t &amp;quot;place JOGL JARs and native OS libraries to the lib/jogl directory&amp;quot;. However the JOGL project has now been merged with GIT, and their website is rather user-unfriendly in the sense that I have no idea how and where to get the JARs and libraries in question -- wmjdgla)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is 0.65 and you can get it [http://mods.oni2.net/index.php?q=node/52 here] (source included)&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
maybe implement exporting animations to COLLADA in some far future&lt;br /&gt;
&lt;br /&gt;
=== Log ===&lt;br /&gt;
10.11.2006 - the project started.&lt;br /&gt;
&lt;br /&gt;
03.12.2006 - ok, I have made a little movement - it can now parse a dat.&lt;br /&gt;
&lt;br /&gt;
16.12.2006 - well, now it is not enough time to deal with it. So, it is temporarily dead.&lt;br /&gt;
&lt;br /&gt;
17.07.2007 - hmm, some movements have been made: i have rewritten some of OniTools&#039; sources in Java. But what i got was not exactly what i was going to get: i found out, that OniTools have rather poor functionality in sense of viewing Oni multimedia data. I&#039;ll take a break for now, but some time later i&#039;ll return to grab some sources from OniBrowser.&lt;br /&gt;
&lt;br /&gt;
23.11.2007 - so ... a year has already passed&lt;br /&gt;
&lt;br /&gt;
now it can view/extract sounds&lt;br /&gt;
&lt;br /&gt;
25.11.2007 - now it can view/extract images&lt;br /&gt;
&lt;br /&gt;
16.12.2007 - today is saturday, and yesterday was friday; now it can view and extract 3d objects (M3GM)&lt;br /&gt;
&lt;br /&gt;
17.12.2007 - found and fixed a bug: when extracting to 3ds textures were mapped upside-down; also replaced the table with the tree; also slightly modified url&lt;br /&gt;
&lt;br /&gt;
25.12.2007 - oncc viewing/exporting implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (27.01.2008&#039;s night) - extracting from M3GM to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (evening) - extracting from ONCC to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developer ===&lt;br /&gt;
Kuchumov Nikolay, grabbing sources from the whole community&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app is based a bit on &amp;lt;i&amp;gt;OniTools by Ian Patterson&amp;lt;/i&amp;gt;, and mostly &amp;lt;i&amp;gt;OniBrowser by Neo&amp;lt;/i&amp;gt; and this wiki site&amp;lt;br&amp;gt;&lt;br /&gt;
And i also actively used &amp;lt;i&amp;gt;OniUnPacker&amp;lt;/i&amp;gt; for debugging and a little research&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16570</id>
		<title>Oni Model Extractor</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_Model_Extractor&amp;diff=16570"/>
		<updated>2010-06-05T03:27:40Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Oni Model Extractor (or OME) ==&lt;br /&gt;
[[Image:ome_screenshot.png|right|v 0.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This is a Java, GUI-based program allowing one to preview and extract character models, 3D objects, images, sounds and some animations in Oni&#039;s .dat files. This program is now no longer being actively maintained or developed by the author and its functions have since been superseded by Onisplit.&lt;br /&gt;
&lt;br /&gt;
The detailed functions are as follows:&lt;br /&gt;
*previews &amp;amp; exports [[SNDD]] (sound data) as .wav &#039;&#039;(The author says that it can also export as .aif, but that option is not available from the file type drop-down box when exporting. Anybody knows anything about this? -- wmjdgla)&#039;&#039;&lt;br /&gt;
*exports [[TXMP]] (texture maps) as .png&lt;br /&gt;
*exports [[M3GM]] (3D objects) &amp;amp; [[ONCC]] (3D character models) as 3DS Max files (without animations and smoothing groops) or COLLADA files (without animations)&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
The current version is 0.65 and you can get it [http://mods.oni2.net/index.php?q=node/52 here] (source included)&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
maybe implement exporting animations to COLLADA in some far future&lt;br /&gt;
&lt;br /&gt;
=== Log ===&lt;br /&gt;
10.11.2006 - the project started.&lt;br /&gt;
&lt;br /&gt;
03.12.2006 - ok, I have made a little movement - it can now parse a dat.&lt;br /&gt;
&lt;br /&gt;
16.12.2006 - well, now it is not enough time to deal with it. So, it is temporarily dead.&lt;br /&gt;
&lt;br /&gt;
17.07.2007 - hmm, some movements have been made: i have rewritten some of OniTools&#039; sources in Java. But what i got was not exactly what i was going to get: i found out, that OniTools have rather poor functionality in sense of viewing Oni multimedia data. I&#039;ll take a break for now, but some time later i&#039;ll return to grab some sources from OniBrowser.&lt;br /&gt;
&lt;br /&gt;
23.11.2007 - so ... a year has already passed&lt;br /&gt;
&lt;br /&gt;
now it can view/extract sounds&lt;br /&gt;
&lt;br /&gt;
25.11.2007 - now it can view/extract images&lt;br /&gt;
&lt;br /&gt;
16.12.2007 - today is saturday, and yesterday was friday; now it can view and extract 3d objects (M3GM)&lt;br /&gt;
&lt;br /&gt;
17.12.2007 - found and fixed a bug: when extracting to 3ds textures were mapped upside-down; also replaced the table with the tree; also slightly modified url&lt;br /&gt;
&lt;br /&gt;
25.12.2007 - oncc viewing/exporting implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (27.01.2008&#039;s night) - extracting from M3GM to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
28.01.2008 (evening) - extracting from ONCC to COLLADA implemented&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developer ===&lt;br /&gt;
Kuchumov Nikolay, grabbing sources from the whole community&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The app is based a bit on &amp;lt;i&amp;gt;OniTools by Ian Patterson&amp;lt;/i&amp;gt;, and mostly &amp;lt;i&amp;gt;OniBrowser by Neo&amp;lt;/i&amp;gt; and this wiki site&amp;lt;br&amp;gt;&lt;br /&gt;
And i also actively used &amp;lt;i&amp;gt;OniUnPacker&amp;lt;/i&amp;gt; for debugging and a little research&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:Modding tools]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=16569</id>
		<title>OniSplit</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=16569"/>
		<updated>2010-06-04T17:22:26Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniSplit&#039;&#039;&#039;, written by [[User_talk:Neo|Neo]], is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It does the work of splitting and recombining Oni&#039;s data files.  But it also does much more, such as extracting and creating textures, 3D and .xml files.&lt;br /&gt;
&lt;br /&gt;
==Getting it==&lt;br /&gt;
===Download links===&lt;br /&gt;
* Latest version of OniSplit: [http://mods.oni2.net/system/files/OniSplit.exe_.zip v0.9.40]&lt;br /&gt;
* A GUI for OniSplit for Windows can be found [http://oni.bungie.org/community/forum/viewtopic.php?pid=9323#p9323 HERE.]&lt;br /&gt;
* A GUI for OniSplit for the Mac is found [[AETools|HERE]].&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;amp;displaylang=en .NET 2.0]&lt;br /&gt;
* [http://www.go-mono.com/mono-downloads/download.html Latest version of mono (requires OS X 10.4+)]&lt;br /&gt;
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Using it==&lt;br /&gt;
The following actions are listed when calling OniSplit with the &amp;lt;tt&amp;gt;-help&amp;lt;/tt&amp;gt; option (another informative option is &amp;lt;tt&amp;gt;-version&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:The command line must be preceded by either &amp;lt;tt&amp;gt;OniSplit.exe&amp;lt;/tt&amp;gt; (Windows) or &amp;lt;tt&amp;gt;mono OniSplit.exe&amp;lt;/tt&amp;gt; (Mac OS)&lt;br /&gt;
::If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.&lt;br /&gt;
:::On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.&lt;br /&gt;
====Conversion between .dat and .oni====&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-export &amp;lt;target directory&amp;gt; &amp;lt;source file&amp;gt;&amp;lt;/tt&amp;gt;||Exports source file (.dat) to target directory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; tries to get target file format from source SNDD&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:sep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)&lt;br /&gt;
|}&lt;br /&gt;
:Note that -import will search subdirectories too. If you find having hundreds or thousand of files .oni in one directory to be unmanageable you can always group them in subdirectories anyway you like. The only exception is that a subdirectory named &amp;quot;noimport&amp;quot; or &amp;quot;_noimport&amp;quot; is always ignored.&lt;br /&gt;
&lt;br /&gt;
====Management of .oni files====&lt;br /&gt;
Unless mentioned otherwise, the filename field supports wildcards (&amp;quot;*&amp;quot;).&lt;br /&gt;
:OniSplit consistently detects and manages &amp;quot;dependencies&amp;quot; of .oni files.&lt;br /&gt;
::The dependencies of a file are looked up in its folder and subfolders.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-deps &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Displays a list of .oni files that the specified .oni file depends on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-copy &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Copies .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:overwrite &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; overwrites any existing .oni files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:delete &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; doesn&#039;t overwrite; deletes source files&lt;br /&gt;
|}&lt;br /&gt;
====Conversion between .oni/.dat and 3rd party formats====&lt;br /&gt;
=====Textures=====&lt;br /&gt;
Unless mentioned otherwise, source filenames support wildcards. See [[AE:Modifying textures|HERE]] for a detailed tutorial.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dds &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:tga &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:png &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format&lt;br /&gt;
|-&lt;br /&gt;
|align=right|&amp;lt;tt&amp;gt;-create:txmp &amp;lt;targer directory&amp;gt; [-genmipmaps] [-nouwrap] [-novwrap]&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;[-envmap:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|valign=top|Creates .oni file in target directory from source image&lt;br /&gt;
|}&lt;br /&gt;
The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMPs from a .dat file.&lt;br /&gt;
&lt;br /&gt;
=====Models=====&lt;br /&gt;
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can be exported to the Wavefront .obj and COLLADA .dae formats. For details see [[AE:Importing character models|HERE]] and [[AE:Importing weapon models|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:obj &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Collada files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:m3gm &amp;lt;target directory&amp;gt; [-tex:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a M3GM .oni in target directory from an .obj file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:trbs &amp;lt;target directory&amp;gt; [-cel] [-normals] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a TRBS .oni in target directory from a .dae file&lt;br /&gt;
|}&lt;br /&gt;
The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.&lt;br /&gt;
:TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see [[AE:Importing character models|HERE]] for details.&lt;br /&gt;
::Imported geometry must only contain triangles. See [[AE:Importing character models|HERE]] for additional options (e.g., cel-shading)&lt;br /&gt;
&lt;br /&gt;
====Levels====&lt;br /&gt;
OniSplit can convert AKEV files (level geometry) and the associated file types to and from DAE format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;name of AKEV.oni source file&amp;gt;&amp;lt;/tt&amp;gt;   Extracts all AKEV and related instances to Collada files&lt;br /&gt;
&lt;br /&gt;
The next two steps are used on a folder in which you have placed the DAE and XML-formatted instances of the required files, as well as textures in TGA format. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; -genmipmaps -format:dxt1 &amp;lt;source directory/&amp;gt;*.xml&amp;lt;/tt&amp;gt;   Converts all AKEV and related instances to .oni files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file name&amp;gt;.dat&amp;lt;/tt&amp;gt;   The standard command for creating .dat/.raw files from .oni files (remember to use the import:sep option on Mac!)&lt;br /&gt;
&lt;br /&gt;
=====Misc=====&lt;br /&gt;
Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:wav &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .wav into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:aif &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:txt &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SUBT as .txt into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:subt &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a SUBT .oni file in target folder from a .txt file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====XML=====&lt;br /&gt;
One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.&lt;br /&gt;
::Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for [[BINA]], [[CONS]], [[DOOR]], [[DPge]], [[FILM]], [[HPge]], [[IGHH]], [[IPge]], [[M3GM]], [[OBAN]], [[ONCC]], [[ONCV]], [[ONLD]], [[ONLV]], [[ONGS]], [[ONSK]], [[ONVL]], [[ONWC]], [[OPge]], [[OSBD]], [[PSpc]], [[PSpL]], [[PSUI]], [[TRAC]], [[TRAM]], [[TRIG]], [[TRGE]], [[TRMA]], [[TRSC]], [[TXMB]], [[TXMP]], [[WMCL]], [[WMDD]], [[WMM_]], [[WPge]].&lt;br /&gt;
:::For detailed examples and tutorials, see [[AE:XML|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:xml &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all instances to XML files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates an .oni file in the target directory from an XML file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BIG NOTE OF WARNING: some of the above instance types (most importantly ONWC) contain geometry data (M3GM) embedded in them. The geometry can round-trip through xml but versions of OniSplit up to and including 0.9.26 produce an invalid .oni file that may cause Oni to crash.&lt;br /&gt;
[[Category:Modding tools]][[Category:Articles that need updating]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change Log==&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.40&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for exporting/importing [[OBD:BINA/SABD|sound animations]] to/from xml files&lt;br /&gt;
:* better Collada export for environment&lt;br /&gt;
:* support for full color transparent textures (-format:bgra32 on the command line, ARGB8888 format in an xml file)&lt;br /&gt;
:* different (hopefully better) xml export format for animations (this one is actually from 0.9.38 but since that wasn&#039;t mentioned here...)&lt;br /&gt;
:* a more or less complete animation importer. This one deservers some notes:&lt;br /&gt;
::-unlike other importers that produce .oni files this one produces and .xml file (similar to the one you get when exporting a TRAM)&lt;br /&gt;
::when you do&lt;br /&gt;
  onisplit -create:tram target_dir animation.dae&lt;br /&gt;
::in the target dir you&#039;ll get a TRAManimation.xml file.&lt;br /&gt;
::You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.&lt;br /&gt;
::-For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.&lt;br /&gt;
::-Note that the geometry that is present inside the Collada file is used to compute the &amp;quot;vertical extents&amp;quot; so it better be the same or close to the one the animation is intended for.&lt;br /&gt;
::-The biggest problem are the attacks. While it&#039;s not difficult to add attacks to the xml file, computing the necessary &amp;quot;extents&amp;quot; is not going to be easy. I guess in the end I&#039;ll have to add some command to OniSplit to do it.&lt;br /&gt;
::-Everything else that I forgot :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.37.zip OniSplit v0.9.37]&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for transparency in the environment importer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.35&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* conversion of recorded films (.dat binary files) to xml files that can be used to create FILM .oni files&lt;br /&gt;
&lt;br /&gt;
    OniSplit film2xml out_dir film.dat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.34&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* SNDD importer&lt;br /&gt;
::-WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.&lt;br /&gt;
::-AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.&lt;br /&gt;
::Example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  OniSplit -create out_dir test.aif&lt;br /&gt;
  OniSplit -create out_dir test.wav&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*LOD support for creating TRBS files. This can be done by creating an xml file containing the following:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_4.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_5.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::and running the command (assuming the created xml file&#039;s name is barabus_body.xml):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir barabus_body.xml&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not strictly necessary to create 5 different geometries for each LOD. The following works just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*An xml file can contain &amp;quot;links&amp;quot; to other xml/obj/dae files. For example you can have the following line in an ONWC xml file:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Assuming the file pistol.obj exists in the same directory an M3GM .oni file will be automatically created from it.&lt;br /&gt;
&lt;br /&gt;
::Relative paths work just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;geometry/pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*The -create:subt, -create:txmp and -create:m3gm are sort of obsolete. They still work but now you can simply use &#039;-create&#039; (or just &#039;create&#039;):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir crate.dae&lt;br /&gt;
  OniSplit create out_dir -format:bgr555 -genmipmaps pic.tga&lt;br /&gt;
  OniSplit create out_dir subtitles.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Work in progress: the AKEV importer now reads Collada materials so the resulting AKEV is textured.&lt;br /&gt;
&lt;br /&gt;
:Sample levels:&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/noglass.zip TestLevel1] -- This level should look like this in-game: &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 1.jpg|Image 1]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 2.jpg|Image 2]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 3.jpg|Image 3]]&amp;lt;/u&amp;gt;&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/hexagon.zip TestLevel2] -- This level should look like this in-game: &amp;lt;u&amp;gt;[http://edt.oni2.net/images/hexagon1.jpg Image 1]&amp;lt;/u&amp;gt;&lt;br /&gt;
:A zip file contains the minimum needed to get a new level running in Oni. To &amp;quot;compile&amp;quot; a level extract it to a folder and run the following commands:&lt;br /&gt;
 &lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 *.xml&lt;br /&gt;
  OniSplit -import:nosep . Oni\GameDataFolder\level1_Final.dat&lt;br /&gt;
&lt;br /&gt;
:(Of course, you need to change the output .dat file path to match your Oni installation path)&lt;br /&gt;
&lt;br /&gt;
:Note1: The hexagon level needs to be scaled up to work properly. Use the envscale option for this:&lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 -envscale:40 *.xml&lt;br /&gt;
&lt;br /&gt;
:Note2: I&#039;ve updated the level files to contain 20 empty corpses to prevent crashes.&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)&amp;diff=16568</id>
		<title>Oni (folder)</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)&amp;diff=16568"/>
		<updated>2010-06-04T15:48:08Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a browseable representation of Oni&#039;s file hierarchy under Windows and the Mac OS. You can use it to verify that you have all the needed files; it can also educate you on the details of what each file does, or how Oni finds its game data. Click on a folder&#039;s name to go down to that level of the hierarchy; click on a file&#039;s name to read more about that file.&lt;br /&gt;
&lt;br /&gt;
:The default location for this folder in Windows is &#039;&#039;&#039;C:\Program Files\Oni&#039;&#039;&#039;, and in Mac OS X it is &#039;&#039;&#039;/Applications/Oni&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For Windows Vista, four files - &#039;&#039;&#039;persist.dat&#039;&#039;&#039;, &#039;&#039;&#039;debugger.txt&#039;&#039;&#039;, &#039;&#039;&#039;key_config.txt&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;startup.txt&#039;&#039;&#039; are instead located at &#039;&#039;&#039;C:\Users\*your username*\AppData\Local\VirtualStore\Program Files\Oni&#039;&#039;&#039; by virtue of OS&#039;s handling of the game&#039;s installation. This does not apply to Oni: AE that is installed on Vista.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;About the icons&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Aqua Dot-Red.png]] = needed to run Oni (created while installing); [[Image:Aqua Dot-Yellow.png]] = created while running Oni; [[Image:Aqua Dot-Blue.png]] = less-important files.&lt;br /&gt;
&lt;br /&gt;
Not all Oni players may see all the files in this list; if they are marked with yellow, Oni may not have seen a need to create them (read about that file for more info); if they are blue, then don&#039;t even worry about them if they&#039;re missing.&lt;br /&gt;
&lt;br /&gt;
;Note&lt;br /&gt;
:This list is not exhaustive. Screenshots and &amp;quot;films&amp;quot; are dumped to this folder, with generic filenames. Also, a variety of debugging/authoring information can be dumped on demand, either from scripts or the [[Dev Mode]] console.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Windows&lt;br /&gt;
!Mac OS X&lt;br /&gt;
!Description&lt;br /&gt;
{{th}}&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot; |Folders&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Red.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Oni (folder)/GameDataFolder|GameDataFolder]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|A subfolder with movies, scripts and binary resources&lt;br /&gt;
{{th}}&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot; |Files&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Red.png]]&lt;br /&gt;
|binkw32.dll&lt;br /&gt;
|bgcolor=gray|&lt;br /&gt;
|Allows Windows Oni to play BINK movies&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Yellow.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Oni (folder)/debugger.txt|debugger.txt]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|Error log; only created if an error occurs while running Oni&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Red.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Customizing/Binding|key_config.txt]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|Key configuration file; if it&#039;s missing, Oni will generate a default&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Blue.png]]&lt;br /&gt;
|[[Oni (folder)/license.txt|license.txt]]&lt;br /&gt;
|bgcolor=gray|&lt;br /&gt;
|Software license and warranty agreement&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Red.png]]&lt;br /&gt;
|[[AE:EXE|Oni.exe]]&lt;br /&gt;
|[[AE:OMNI|Oni]]&lt;br /&gt;
|The game&#039;s executable&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Blue.png]]&lt;br /&gt;
|ONI.url&lt;br /&gt;
|bgcolor=gray|&lt;br /&gt;
|URL for [http://oni.bungie.com oni.bungie.com] (subdomain is defunct)&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Yellow.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Oni (folder)/persist.dat|persist.dat]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|Save-game file; created by Oni if missing&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Blue.png]]&lt;br /&gt;
|[[Oni (folder)/readme.txt|readme.txt]]&lt;br /&gt;
|[[Oni (folder)/Oni ReadMe|Oni ReadMe]]&lt;br /&gt;
|Readme file&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Blue.png]]&lt;br /&gt;
|RegisterOni.url&lt;br /&gt;
|bgcolor=gray|&lt;br /&gt;
|[http://www.godgames.com/main.php?section=support&amp;amp;page=registration URL] for godgames.com (site is defunct)&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Yellow.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[BSL|script_commands.txt]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|List of BSL commands &amp;amp; variables; created by [[BSL]] command [[dump_docs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Yellow.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Oni (folder)/script_debug.txt|script_debug.txt]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|Log of BSL &amp;quot;contexts&amp;quot;; dumped if Oni is run with [[Customizing#Command-line arguments|-debugfiles]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Yellow.png]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|&amp;lt;center&amp;gt;[[Oni (folder)/startup.txt|startup.txt]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|Event log; dumped (overwritten) every time Oni is run&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Aqua Dot-Blue.png]]&lt;br /&gt;
|Uninst.isu&lt;br /&gt;
|bgcolor=gray|&lt;br /&gt;
|Record used by Windows to uninstall Oni (or &amp;quot;Uninstal.log&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Game directory map]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/persist.dat&amp;diff=16567</id>
		<title>Oni (folder)/persist.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/persist.dat&amp;diff=16567"/>
		<updated>2010-06-04T15:45:13Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{merge|[[Persist.dat]]}}&lt;br /&gt;
&lt;br /&gt;
The savegame file &#039;&#039;&#039;persist.dat&#039;&#039;&#039; corresponds to a dump of Oni&#039;s memory. It is written at specific moments during the game, e.g. after a new level is loaded, or after a new savepoint is reached. It also registers settings from the option menu and remembers whether the cheats are enabled (i.e. whether you have beaten the game) and whether you have killed [[Griffin]].&lt;br /&gt;
&lt;br /&gt;
The savegame file is a memory dump and has nothing to do with [[dat|instance files]] despite the &amp;quot;.dat&amp;quot; extension (same for saved_film####.dat, ####_corpse.dat, etc). The binary format of a savegame file is detailed below. It applies to PC and PC demo; the Mac build writes all numbers as [[wikipedia:Big Endian|Big Endian]], e.g., the 0x08 field in the header will appear as 00 0C 7F 5C for a Mac savegame. Therefore, savegames are not interchangeable between PC and Mac versions of Oni.&lt;br /&gt;
&lt;br /&gt;
The header of the savegame file is 0x60=612 bytes long. It is followed by an array of 400 savepoints, 0x204=516 bytes each, grouped implicitly into 40 levels, 10 savepoints per level. The first 10 savepoints belong to level 0 and are never written to. The savepoints of the original 14 levels follow. This leaves 25 unused levels at the end of the savegame file.&lt;br /&gt;
&lt;br /&gt;
The level names are taken from the [[ONLD]] files of level 0, except for Chapters 0 and 1: &amp;quot;TCTF Training&amp;quot; (level 1, savepoint 0) and &amp;quot;Syndicate Warehouse&amp;quot; (level 1 savepoint 1) are hardcoded in the engine.&lt;br /&gt;
{{table}}{{OBDtable}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr|0x00|int32|FF0000|0F 00 00 00|15|unknown, maybe 15 levels; if not 15, file is invalid}}&lt;br /&gt;
{{OBDtr|0x04|int32|FF0000|0E 0B D0 D0|???|unknown}}&lt;br /&gt;
{{OBDtr|0x08|int32|FF0000|5C 7F 0C 00|2&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;13&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;+2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;|visibility lock for levels 2 through 31; 0 and 1 unaffected}}&lt;br /&gt;
{{OBDtr|0x0C|int32|FF0000|00 00 00 00|none|visibility lock for levels 32 through 63}}&lt;br /&gt;
{{OBDtr|0x10|int32|FF0000|00 00 00 00|none|visibility lock for levels 64 through 95}}&lt;br /&gt;
{{OBDtr|0x14|int32|FF0000|00 00 00 00|none|visibility lock for levels 96 through 127}}&lt;br /&gt;
{{OBDtr|0x18|int32|FF0000|00 00 00 00|none|visibility lock for levels 128 through 159}}&lt;br /&gt;
{{OBDtr|0x1C|int32|FF0000|00 00 00 00|none|visibility lock for levels 160 through 191}}&lt;br /&gt;
{{OBDtr|0x20|int32|FF0000|00 00 00 00|none|visibility lock for levels 192 through 223}}&lt;br /&gt;
{{OBDtr|0x24|int32|FF0000|00 00 00 00|none|visibility lock for levels 224 through 255}}&lt;br /&gt;
{{OBDtr|0x28|int32|FFFF00|01 00 00 00|true|whether Griffin was killed: used in Chapters {{C|13|13}} and {{C|14|14}}; set with [[BSL:Functions|func]] [[killed_griffen]](bool), read with [[BSL:Functions|func]] [[did_kill_griffen]]()}}&lt;br /&gt;
{{OBDtr|0x2C|int32|00FF00|FE 1B 00 00|2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;|unknown}}&lt;br /&gt;
{{OBDtr|0x30|int32|00FFFF|1F 00 00 00|31|unknown}}&lt;br /&gt;
{{OBDtr|0x34|int32|FF00FF|13 00 00 00|19|unknown}}&lt;br /&gt;
{{OBDtr|0x38|int32|FFC8C8|01 00 00 00|01|unknown}}&lt;br /&gt;
{{OBDtr|0x3C|int32|FFFFC8|04 00 00 00|4|quality: from superlow (0) to superhigh (4)}}&lt;br /&gt;
{{OBDtr|0x40|float|C8FFC8|00 00 80 3F|1.000000|sound volume: from 0.0 to 1.0}}&lt;br /&gt;
{{OBDtr|0x44|bool32|C8FFFF|06 00 00 00|2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;|bitset: 1 - show subtitles; 2 - invert aiming; 4 - enable cheats}}&lt;br /&gt;
{{OBDtr|0x48|int32|FFC8FF|02 00 00 00|2|quality: from Easy (0) to Hard (2)}}&lt;br /&gt;
{{OBDtr|0x4C|int16|FFC800|20 03|800|horizontal screen resolution}}&lt;br /&gt;
{{OBDtr|0x4E|int16|FFC800|02 58|600|vertical screen resolution}}&lt;br /&gt;
{{OBDtr|0x50|int32|C800C8|20 00 00 00|32|color depth}}&lt;br /&gt;
{{OBDtr|0x54|float|C87C64|00 00 00 3F|0.500000|gamma correction; from 0.0 to 1.0, 0.5 means no correction}}&lt;br /&gt;
{{OBDtr|0x58|int32|B0C3D4|03 00 00 00|3|last loaded level; written at level load}}&lt;br /&gt;
{{OBDtr|0x5C|int32|E7CEA5|02 00 00 00|2|last saved savepoint}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of a savepoint (chapter 1, savepoint 2)&lt;br /&gt;
{{table}}{{OBDtable}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr2|0x00|char[64]|FF0000|&amp;quot;Save Point 2&amp;quot;|name of the savepoint in the Load Game dialog}}&lt;br /&gt;
{{OBDtr|0x40|int32|FFFF00|01 00 00 00|true|whether the savepoint is visible in the Load Game dialog}}&lt;br /&gt;
{{OBDtr|0x44|int32|00FF00|BE 00 00 00|190|current health in hitpoints}}&lt;br /&gt;
{{OBDtr|0x48|int32|00FFFF|C8 00 00 00|200|max. health in hitpoints}}&lt;br /&gt;
{{OBDtr|0x4C|float|FF00FF|AE 20 FB 43|502.255310|x-position}}&lt;br /&gt;
{{OBDtr|0x50|float|FF00FF|03 32 4B 42|50.798839|y-position (height)}}&lt;br /&gt;
{{OBDtr|0x54|float|FF00FF|55 12 25 C4|-660.286437|z-position}}&lt;br /&gt;
{{OBDtr|0x58|float|FFC8C8|80 06 C1 3F|1.508010|y-rotation (facing)}}&lt;br /&gt;
{{OBDtr|0x5C|int32|FFFFC8|00 00 00 00|0|amount of ballistic ammo (red clips)}}&lt;br /&gt;
{{OBDtr|0x60|int32|C8FFC8|01 00 00 00|1|amount of energy cells (green clips)}}&lt;br /&gt;
{{OBDtr|0x64|int32|C8FFFF|00 00 00 00|0|shield in percent}}&lt;br /&gt;
{{OBDtr|0x68|int32|FFC8FF|00 00 00 00|0|phase cloak in frames (1/60 s)}}&lt;br /&gt;
{{OBDtr|0x6C|int32|FFC800|01 00 00 00|1|amount of hypos}}&lt;br /&gt;
{{OBDtr|0x70|int32|C800C8|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr|0x74|int32|C87C64|01 00 00 00|true|whether the player has an [[LSI]]}}&lt;br /&gt;
{{OBDtr|0x78|int32|B0C3D4|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr|0x7C|int32|E7CEA5|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr2|0x80|char[256]|FFDDDD|&amp;amp;nbsp;|unknown, always 0}}&lt;br /&gt;
{{OBDtr2|0x180|char[128]|64AAAA|w2_sap|name of player&#039;s [[ONWC]] (weapon class) if any}}&lt;br /&gt;
{{OBDtr|0x200|int32|EBEBEB|1E 00 00 00|30|ammo filling of the weapon (shots or percent?)}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oni binary data docs]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/persist.dat&amp;diff=16565</id>
		<title>Oni (folder)/persist.dat</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/persist.dat&amp;diff=16565"/>
		<updated>2010-06-04T03:36:27Z</updated>

		<summary type="html">&lt;p&gt;Wmjdgla: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{merge|[[Persist.dat]]}}&lt;br /&gt;
&lt;br /&gt;
The savegame file &#039;&#039;&#039;persist.dat&#039;&#039;&#039; corresponds to a dump of Oni&#039;s memory. It is written at specific moments during the game, e.g. after a new level is loaded, or after a new savepoint is reached. It also registers settings from the option menu and remembers whether the cheats are enabled (i.e. whether you have beaten the game) and whether you have killed [[Griffin]].&lt;br /&gt;
&lt;br /&gt;
Note that for Windows Vista, the file, along with three others( debugger.txt, key_config.txt &amp;amp; startup.txt ) are located at C:\Users\*your username*\AppData\Local\VirtualStore\Program Files\Oni, rather than in the same directory as Oni.exe by virtue of OS&#039;s handling of the game&#039;s installation. This does not apply to Oni: AE.&lt;br /&gt;
&lt;br /&gt;
The savegame file is a memory dump and has nothing to do with [[dat|instance files]] despite the &amp;quot;.dat&amp;quot; extension (same for saved_film####.dat, ####_corpse.dat, etc). The binary format of a savegame file is detailed below. It applies to PC and PC demo; the Mac build writes all numbers as [[wikipedia:Big Endian|Big Endian]], e.g., the 0x08 field in the header will appear as 00 0C 7F 5C for a Mac savegame. Therefore, savegames are not interchangeable between PC and Mac versions of Oni.&lt;br /&gt;
&lt;br /&gt;
The header of the savegame file is 0x60=612 bytes long. It is followed by an array of 400 savepoints, 0x204=516 bytes each, grouped implicitly into 40 levels, 10 savepoints per level. The first 10 savepoints belong to level 0 and are never written to. The savepoints of the original 14 levels follow. This leaves 25 unused levels at the end of the savegame file.&lt;br /&gt;
&lt;br /&gt;
The level names are taken from the [[ONLD]] files of level 0, except for Chapters 0 and 1: &amp;quot;TCTF Training&amp;quot; (level 1, savepoint 0) and &amp;quot;Syndicate Warehouse&amp;quot; (level 1 savepoint 1) are hardcoded in the engine.&lt;br /&gt;
{{table}}{{OBDtable}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr|0x00|int32|FF0000|0F 00 00 00|15|unknown, maybe 15 levels; if not 15, file is invalid}}&lt;br /&gt;
{{OBDtr|0x04|int32|FF0000|0E 0B D0 D0|???|unknown}}&lt;br /&gt;
{{OBDtr|0x08|int32|FF0000|5C 7F 0C 00|2&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;13&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;+2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;|visibility lock for levels 2 through 31; 0 and 1 unaffected}}&lt;br /&gt;
{{OBDtr|0x0C|int32|FF0000|00 00 00 00|none|visibility lock for levels 32 through 63}}&lt;br /&gt;
{{OBDtr|0x10|int32|FF0000|00 00 00 00|none|visibility lock for levels 64 through 95}}&lt;br /&gt;
{{OBDtr|0x14|int32|FF0000|00 00 00 00|none|visibility lock for levels 96 through 127}}&lt;br /&gt;
{{OBDtr|0x18|int32|FF0000|00 00 00 00|none|visibility lock for levels 128 through 159}}&lt;br /&gt;
{{OBDtr|0x1C|int32|FF0000|00 00 00 00|none|visibility lock for levels 160 through 191}}&lt;br /&gt;
{{OBDtr|0x20|int32|FF0000|00 00 00 00|none|visibility lock for levels 192 through 223}}&lt;br /&gt;
{{OBDtr|0x24|int32|FF0000|00 00 00 00|none|visibility lock for levels 224 through 255}}&lt;br /&gt;
{{OBDtr|0x28|int32|FFFF00|01 00 00 00|true|whether Griffin was killed: used in Chapters {{C|13|13}} and {{C|14|14}}; set with [[BSL:Functions|func]] [[killed_griffen]](bool), read with [[BSL:Functions|func]] [[did_kill_griffen]]()}}&lt;br /&gt;
{{OBDtr|0x2C|int32|00FF00|FE 1B 00 00|2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;|unknown}}&lt;br /&gt;
{{OBDtr|0x30|int32|00FFFF|1F 00 00 00|31|unknown}}&lt;br /&gt;
{{OBDtr|0x34|int32|FF00FF|13 00 00 00|19|unknown}}&lt;br /&gt;
{{OBDtr|0x38|int32|FFC8C8|01 00 00 00|01|unknown}}&lt;br /&gt;
{{OBDtr|0x3C|int32|FFFFC8|04 00 00 00|4|quality: from superlow (0) to superhigh (4)}}&lt;br /&gt;
{{OBDtr|0x40|float|C8FFC8|00 00 80 3F|1.000000|sound volume: from 0.0 to 1.0}}&lt;br /&gt;
{{OBDtr|0x44|bool32|C8FFFF|06 00 00 00|2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;|bitset: 1 - show subtitles; 2 - invert aiming; 4 - enable cheats}}&lt;br /&gt;
{{OBDtr|0x48|int32|FFC8FF|02 00 00 00|2|quality: from Easy (0) to Hard (2)}}&lt;br /&gt;
{{OBDtr|0x4C|int16|FFC800|20 03|800|horizontal screen resolution}}&lt;br /&gt;
{{OBDtr|0x4E|int16|FFC800|02 58|600|vertical screen resolution}}&lt;br /&gt;
{{OBDtr|0x50|int32|C800C8|20 00 00 00|32|color depth}}&lt;br /&gt;
{{OBDtr|0x54|float|C87C64|00 00 00 3F|0.500000|gamma correction; from 0.0 to 1.0, 0.5 means no correction}}&lt;br /&gt;
{{OBDtr|0x58|int32|B0C3D4|03 00 00 00|3|last loaded level; written at level load}}&lt;br /&gt;
{{OBDtr|0x5C|int32|E7CEA5|02 00 00 00|2|last saved savepoint}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of a savepoint (chapter 1, savepoint 2)&lt;br /&gt;
{{table}}{{OBDtable}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr2|0x00|char[64]|FF0000|&amp;quot;Save Point 2&amp;quot;|name of the savepoint in the Load Game dialog}}&lt;br /&gt;
{{OBDtr|0x40|int32|FFFF00|01 00 00 00|true|whether the savepoint is visible in the Load Game dialog}}&lt;br /&gt;
{{OBDtr|0x44|int32|00FF00|BE 00 00 00|190|current health in hitpoints}}&lt;br /&gt;
{{OBDtr|0x48|int32|00FFFF|C8 00 00 00|200|max. health in hitpoints}}&lt;br /&gt;
{{OBDtr|0x4C|float|FF00FF|AE 20 FB 43|502.255310|x-position}}&lt;br /&gt;
{{OBDtr|0x50|float|FF00FF|03 32 4B 42|50.798839|y-position (height)}}&lt;br /&gt;
{{OBDtr|0x54|float|FF00FF|55 12 25 C4|-660.286437|z-position}}&lt;br /&gt;
{{OBDtr|0x58|float|FFC8C8|80 06 C1 3F|1.508010|y-rotation (facing)}}&lt;br /&gt;
{{OBDtr|0x5C|int32|FFFFC8|00 00 00 00|0|amount of ballistic ammo (red clips)}}&lt;br /&gt;
{{OBDtr|0x60|int32|C8FFC8|01 00 00 00|1|amount of energy cells (green clips)}}&lt;br /&gt;
{{OBDtr|0x64|int32|C8FFFF|00 00 00 00|0|shield in percent}}&lt;br /&gt;
{{OBDtr|0x68|int32|FFC8FF|00 00 00 00|0|phase cloak in frames (1/60 s)}}&lt;br /&gt;
{{OBDtr|0x6C|int32|FFC800|01 00 00 00|1|amount of hypos}}&lt;br /&gt;
{{OBDtr|0x70|int32|C800C8|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr|0x74|int32|C87C64|01 00 00 00|true|whether the player has an [[LSI]]}}&lt;br /&gt;
{{OBDtr|0x78|int32|B0C3D4|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr|0x7C|int32|E7CEA5|00 00 00 00|0|unknown; always 0}}&lt;br /&gt;
{{OBDtr2|0x80|char[256]|FFDDDD|&amp;amp;nbsp;|unknown, always 0}}&lt;br /&gt;
{{OBDtr2|0x180|char[128]|64AAAA|w2_sap|name of player&#039;s [[ONWC]] (weapon class) if any}}&lt;br /&gt;
{{OBDtr|0x200|int32|EBEBEB|1E 00 00 00|30|ammo filling of the weapon (shots or percent?)}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oni binary data docs]]&lt;/div&gt;</summary>
		<author><name>Wmjdgla</name></author>
	</entry>
</feed>