Oni (folder)/GameDataFolder: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (alignment fix)
m (link fix)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{|
'''GameDataFolder''' (commonly called "GDF") is a subfolder of the main Oni folder. It holds the following:
|valign=top|__TOC__
*Oni's game data, in binary format (see [[OBD]] for more info)
|valign=top|GameDataFolder (commonly called GDF to save on typing) is a subfolder of the main Oni folder.<br>It holds the following:
*the level logic, in plain-text (in the IGMD subfolder; see [[BSL]] for more info)
*Oni's game content (in the form of [[dat|instance files]], see [[OBD]] for more info)
*the intro and outro animated sequences, in the Bink video format
*the level logic of the [[Chapters]] (as [[scripts]] in the [[IGMD]] subfolder, see [[BSL]] for more info)
 
*the [[intro]] and [[outro]] animated sequences, in the BINK video format
|}
==Overview==
==Overview==
Below we list the instance files in parallel with the folders (subfolders of [[IGMD]]) which hold the corresponding level logic. SPOILER WARNING: the Chapter column links to summaries and analyses of Oni's storyline. The BINK movies are listed separately.
You should have all the files in bold in your GameDataFolder, but the movie files are optional. The "PS2" column shows the numbers assigned to each file name on disc; the .raw and .sep file for each level are in subdirectories titled 20/ and 21/. Beside each set of level files, we list the subfolders of IGMD which hold the corresponding level logic. '''SPOILER WARNING''': The "Chapter" column links to summaries and analyses of Oni's storyline.


{|style="margin-left:auto; margin-right:auto;"
{| class="wikitable" style="margin-left:auto; margin-right:auto;"
|
|-
{|{{table}}
|colspan="3" align="center"|'''File name'''
|+BINK videos
|rowspan="2" align="center"|'''Level logic folder'''
|[[:Category:Intro sequence|intro.bik]]
|rowspan="2" align="center"|'''[[Chapters|Chapter]]'''
|opening animated sequence
|rowspan="2" align="center"|'''Location (as in Load Game dialog)'''
|-
|align="center"|'''Windows'''
|align="center"|'''Mac'''
|align="center"|'''PS2'''
|-
|colspan="2"|<center>'''[[IGMD|IGMD/]]'''</center>
|valign=top|'''1'''
| <center>--</center>
|colspan=2 align=center|Contains all level logic
|-
|-
|[[:Category:Outro sequence|outro.bik]]
|colspan="2"|<center>'''[[:Category:Intro sequence|intro.bik]]'''</center>
|closing animated sequence
|valign=top|'''2'''
|}
| <center>--</center>
|}
|colspan=2 align=center|Movie plays when Oni is launched (see note below)
 
{|style="margin-left:auto; margin-right:auto;"
|
{|{{table}}
|+subfolders
|[[IGMD]]
|level logic folder
|}
|}
 
{|style="margin-left:auto; margin-right:auto;"
|
{|{{table}}
|+[[dat|instance files]]
{{th}}
!Instance file (PC)
!Instance file (Mac)
!Level logic folder
![[Chapters|Chapter]]
!Location (as in Load Game dialog)
|-
|-
|valign=top|level0_Final.dat<br>level0_Final.raw
|valign=top|'''level0_Final.dat<br>level0_Final.raw'''
|level0_Final.dat<br>level0_Final.raw<br>level0_Final.sep
|'''level0_Final.dat<br>level0_Final.raw<br>level0_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/global|global]]
|'''3<br>20/1<br>21/1'''
|colspan=2 align=center|"global": used in all Chapters (see note)
|[[IGMD/global]]
|colspan=2 align=center|Used in all Chapters (see notes below on "level0_Final" and "IGMD/global")
|-
|-
|valign=top|level1_Final.dat<br>level1_Final.raw
|valign=top|'''level1_Final.dat<br>level1_Final.raw'''
|level1_Final.dat<br>level1_Final.raw<br>level1_Final.sep
|'''level1_Final.dat<br>level1_Final.raw<br>level1_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/EnvWarehouse|EnvWarehouse]]
|'''11<br>20/9<br>21/9'''
|[[IGMD/EnvWarehouse]]
|{{C|0|0: COMBAT TRAINING}}<br>{{C|1|1: TRIAL RUN}}
|{{C|0|0: COMBAT TRAINING}}<br>{{C|1|1: TRIAL RUN}}
|TCTF Training<br>Syndicate Warehouse
|TCTF Training<br>Syndicate Warehouse
|-
|-
|valign=top|level2_Final.dat<br>level2_Final.raw
|valign=top|'''level2_Final.dat<br>level2_Final.raw'''
|level2_Final.dat<br>level2_Final.raw<br>level2_Final.sep
|'''level2_Final.dat<br>level2_Final.raw<br>level2_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/manplant|manplant]]
|'''12<br>20/10<br>21/10'''
|[[IGMD/manplant]]
|{{C|2|2: ENGINES OF EVIL}}
|{{C|2|2: ENGINES OF EVIL}}
|Manufacturing Plant
|Manufacturing Plant
|-
|-
|valign=top|level3_Final.dat<br>level3_Final.raw
|valign=top|'''level3_Final.dat<br>level3_Final.raw'''
|level3_Final.dat<br>level3_Final.raw<br>level3_Final.sep
|'''level3_Final.dat<br>level3_Final.raw<br>level3_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/lab|lab]]
|'''13<br>20/11<br>21/11'''
|[[IGMD/lab]]
|{{C|3|3: PUZZLE PIECES}}
|{{C|3|3: PUZZLE PIECES}}
|Bio-Research Lab
|Bio-Research Lab
|-
|-
|valign=top|level4_Final.dat<br>level4_Final.raw
|valign=top|'''level4_Final.dat<br>level4_Final.raw'''
|level4_Final.dat<br>level4_Final.raw<br>level4_Final.sep
|'''level4_Final.dat<br>level4_Final.raw<br>level4_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/Airport|Airport]]
|'''14<br>20/12<br>21/12'''
|[[IGMD/Airport]]
|{{C|4|4: TIGER BY THE TAIL}}
|{{C|4|4: TIGER BY THE TAIL}}
|Airport Assault
|Airport Assault
|-
|-
|valign=top|level6_Final.dat<br>level6_Final.raw
|valign=top|'''level6_Final.dat<br>level6_Final.raw'''
|level6_Final.dat<br>level6_Final.raw<br>level6_Final.sep
|'''level6_Final.dat<br>level6_Final.raw<br>level6_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/Airport_III|Airport_III]]
|'''15<br>20/13<br>21/13'''
|[[IGMD/Airport_III]]
|{{C|5|5: HOT PURSUIT}}
|{{C|5|5: HOT PURSUIT}}
|Airport Cargo Hangars
|Airport Cargo Hangars
|-
|-
|valign=top|level8_Final.dat<br>level8_Final.raw
|valign=top|'''level8_Final.dat<br>level8_Final.raw'''
|level8_Final.dat<br>level8_Final.raw<br>level8_Final.sep
|'''level8_Final.dat<br>level8_Final.raw<br>level8_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/tctf|tctf]]
|'''16<br>20/14<br>21/14'''
|[[IGMD/tctf]]
|{{C|6|6: COUNTERATTACK}}
|{{C|6|6: COUNTERATTACK}}
|TCTF Regional HQ
|TCTF Regional HQ
|-
|-
|valign=top|level9_Final.dat<br>level9_Final.raw
|valign=top|'''level9_Final.dat<br>level9_Final.raw'''
|level9_Final.dat<br>level9_Final.raw<br>level9_Final.sep
|'''level9_Final.dat<br>level9_Final.raw<br>level9_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/power|power]]
|'''17<br>20/15<br>21/15'''
|[[IGMD/power]]
|{{C|7|7: A FRIEND IN NEED}}
|{{C|7|7: A FRIEND IN NEED}}
|Atmospheric Conversion Center (exterior)
|Atmospheric Conversion Center (exterior)
|-
|-
|valign=top|level10_Final.dat<br>level10_Final.raw
|valign=top|'''level10_Final.dat<br>level10_Final.raw'''
|level10_Final.dat<br>level10_Final.raw<br>level10_Final.sep
|'''level10_Final.dat<br>level10_Final.raw<br>level10_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/power_II|power_II]]
|'''4<br>20/2<br>21/2'''
|[[IGMD/power_II]]
|{{C|8|8: AN INNOCENT LIFE}}
|{{C|8|8: AN INNOCENT LIFE}}
|Atmospheric Conversion Center (interior)
|Atmospheric Conversion Center (interior)
|-
|-
|valign=top|level11_Final.dat<br>level11_Final.raw
|valign=top|'''level11_Final.dat<br>level11_Final.raw'''
|level11_Final.dat<br>level11_Final.raw<br>level11_Final.sep
|'''level11_Final.dat<br>level11_Final.raw<br>level11_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/state|state]]
|'''5<br>20/3<br>21/3'''
|[[IGMD/state]]
|{{C|9|9: TRUTH AND CONSEQUENCES}}
|{{C|9|9: TRUTH AND CONSEQUENCES}}
|Regional State Building
|Regional State Building
|-
|-
|valign=top|level12_Final.dat<br>level12_Final.raw
|valign=top|'''level12_Final.dat<br>level12_Final.raw'''
|level12_Final.dat<br>level12_Final.raw<br>level12_Final.sep
|'''level12_Final.dat<br>level12_Final.raw<br>level12_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/roof|roof]]
|'''6<br>20/4<br>21/4'''
|[[IGMD/roof]]
|{{C|10|10: CAT AND MOUSE}}
|{{C|10|10: CAT AND MOUSE}}
|Rooftops
|Rooftops
|-
|-
|valign=top|level13_Final.dat<br>level13_Final.raw
|valign=top|'''level13_Final.dat<br>level13_Final.raw'''
|level13_Final.dat<br>level13_Final.raw<br>level13_Final.sep
|'''level13_Final.dat<br>level13_Final.raw<br>level13_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/dream_lab|dream_lab]]
|'''7<br>20/5<br>21/5'''
|[[IGMD/dream_lab]]
|{{C|11|11: DREAM DIVER}}
|{{C|11|11: DREAM DIVER}}
|Doctor Hasegawa's Lab
|Doctor Hasegawa's Lab
|-
|-
|valign=top|level14_Final.dat<br>level14_Final.raw
|valign=top|'''level14_Final.dat<br>level14_Final.raw'''
|level14_Final.dat<br>level14_Final.raw<br>level14_Final.sep
|'''level14_Final.dat<br>level14_Final.raw<br>level14_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/neuro|neuro]]
|'''8<br>20/6<br>21/6'''
|[[IGMD/neuro]]
|{{C|12|12: SINS OF THE FATHER}}
|{{C|12|12: SINS OF THE FATHER}}
|TCTF Science Prison
|TCTF Science Prison
|-
|-
|valign=top|level18_Final.dat<br>level18_Final.raw
|valign=top|'''level18_Final.dat<br>level18_Final.raw'''
|level18_Final.dat<br>level18_Final.raw<br>level18_Final.sep
|'''level18_Final.dat<br>level18_Final.raw<br>level18_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/tctf_ii|tctf_ii]]
|'''9<br>20/7<br>21/7'''
|[[IGMD/tctf_ii]]
|{{C|13|13: PHOENIX RISING}}
|{{C|13|13: PHOENIX RISING}}
|TCTF Regional HQ (redux)
|TCTF Regional HQ (redux)
|-
|-
|valign=top|level19_Final.dat<br>level19_Final.raw
|valign=top|'''level19_Final.dat<br>level19_Final.raw'''
|level19_Final.dat<br>level19_Final.raw<br>level19_Final.sep
|'''level19_Final.dat<br>level19_Final.raw<br>level19_Final.sep'''
|[[IGMD|IGMD]]\[[IGMD/compound|compound]]
|'''10<br>20/8<br>21/8'''
|[[IGMD/compound]]
|{{C|14|14: DAWN OF THE CHRYSALIS}}
|{{C|14|14: DAWN OF THE CHRYSALIS}}
|Syndicate Mountain Compound
|Syndicate Mountain Compound
|}
|-
|colspan="2"|<center>'''[[:Category:Outro sequence|outro.bik]]'''</center>
|'''18'''
| <center>--</center>
|colspan=2 align=center|Movie plays when Oni is beaten (see note below)
|}
|}


==Notes==
==Notes==
===level0_Final and IGMD\global===
===level0_Final===
IGMD\global\ is not present by default, but if it is created, any scripts placed in it will load for all levels; this works only with the PC retail engine: the Mac engines and the PC demo always ignore the global folder. The level0_Final instance file is only loaded once, when Oni starts.
The level 0 data is only loaded once, when Oni starts.
 
===IGMD/global===
IGMD/global/ is not present by default, but if it is created, the functions in any scripts placed inside it will be accessible from all levels; however, the Windows demo engine ignores the global/ folder.
 
===intro.bik, outro.bik===
The movie files are not needed for Oni to run. You can thus rename or move intro.bik out of GameDataFolder so Oni starts faster. Note that if you remove outro.bik, Oni will quit immediately after beating the game because it would normally play the outro and then quit.


===Movie files===
Epic Games Tools, the makers of the Bink video format, offer [https://www.radgametools.com/bnkdown.htm standalone apps] for all platforms if you want to watch the .bik files on their own. However ffmpeg also understands the Bink format, meaning that you can use [https://www.videolan.org/vlc/ VLC] or another ffmpeg-based client to watch the movies.
RAD Game Tools, the makers of the Bink video format, offer [http://www.radgametools.com/bnkdown.htm standalone apps] for all platforms if you want to watch the .bik files on their own (Mac users, pick the Carbon Player, the OS X versions seem to be glitched). The movie files are not needed for Oni to run. You can thus rename or move intro.bik out of GameDataFolder so Oni starts faster. You can also delete both files permanently and gain over 100 MB of hard disk space.


===How Oni finds its GameDataFolder===
===How Oni finds its GameDataFolder===
In Windows, Oni's engine first looks up GDF in the [[wikipedia:working directory|working directory]] (a.k.a. "."). If ".\GameDataFolder" is missing, Oni tries parent folders all the way up to ther root (i.e., it looks for "..\GameDataFolder", "..\..\GameDataFolder", etc). As a last resort, it looks for ".\OniEngine\GameDataFolder". Here are two examples.
In Windows, Oni's engine first looks in the [[wp:Working directory|working directory]] (aka "."). If ".\GameDataFolder" is missing, Oni tries parent folders all the way up to the root (e.g., it looks for "C:\Program Files\Oni\GameDataFolder", then "C:\Program Files\GameDataFolder", then "C:\GameDataFolder"). As a last resort, it looks for ".\OniEngine\GameDataFolder" the same way.
*If Oni was installed into C:\Program Files\Oni and is called from that folder (e.g. by double-clicking the executable or the shortcut generated during installation), Oni will first look for "C:\Program Files\Oni\GameDataFolder". If it's missing, it will try "C:\Program Files\GameDataFolder", then "C:\GameDataFolder", and finally "C:\Program Files\Oni\OniEngine\GameDataFolder".
*Same as above, but with the [[AE|Edition]] installed. There is a folder called "C:\Program Files\Oni\edition", which holds  a working copy of GameDataFolder and scripts that "remotely" run Oni (the engine is still in "C:\Program Files\Oni"). If you double-click the scripts, the working directory is "C:\Program Files\Oni\edition", so Oni will first look for "C:\Program Files\Oni\edition\GameDataFolder", and if it's missing it will try "C:\Program Files\Oni\GameDataFolder", "C:\Program Files\GameDataFolder", "C:\GameDataFolder", and finally "C:\Program Files\Oni\edition\OniEngine\GameDataFolder"
Early versions of the [[Daodan DLL|C-Daodan]] discarded the notion of working directory and used the engine's directory instead; the feature will probably be brought back, for backwards compatibility.


On the Mac, the location of the GDF is stored in a preferences file (~/Library/Preferences/com.godgames.oni.plist). Oni therefore does not search for a GDF, it merely checks to see if the last-known location of the GDF is still valid. If not, it presents an open dialog box that allows the user to pick a new GDF (technically it wants the location of the folder that <u>contains</u> the GDF), then saves the new location in its prefs file. To change the GDF that Oni uses, rename it, then open Oni, and when the dialog box appears, you can fix the name of the GDF and then switch back to Oni and pick a new one in the dialog box.
The Mac Oni app follows the same search pattern for GameDataFolder/, but does not look for OniEngine/GameDataFolder/.


[[Category:Game directory map]]
[[Category:Game directory map]]

Latest revision as of 17:22, 11 February 2024

GameDataFolder (commonly called "GDF") is a subfolder of the main Oni folder. It holds the following:

  • Oni's game data, in binary format (see OBD for more info)
  • the level logic, in plain-text (in the IGMD subfolder; see BSL for more info)
  • the intro and outro animated sequences, in the Bink video format

Overview

You should have all the files in bold in your GameDataFolder, but the movie files are optional. The "PS2" column shows the numbers assigned to each file name on disc; the .raw and .sep file for each level are in subdirectories titled 20/ and 21/. Beside each set of level files, we list the subfolders of IGMD which hold the corresponding level logic. SPOILER WARNING: The "Chapter" column links to summaries and analyses of Oni's storyline.

File name Level logic folder Chapter Location (as in Load Game dialog)
Windows Mac PS2
IGMD/
1
--
Contains all level logic
intro.bik
2
--
Movie plays when Oni is launched (see note below)
level0_Final.dat
level0_Final.raw
level0_Final.dat
level0_Final.raw
level0_Final.sep
3
20/1
21/1
IGMD/global Used in all Chapters (see notes below on "level0_Final" and "IGMD/global")
level1_Final.dat
level1_Final.raw
level1_Final.dat
level1_Final.raw
level1_Final.sep
11
20/9
21/9
IGMD/EnvWarehouse 0: COMBAT TRAINING
1: TRIAL RUN
TCTF Training
Syndicate Warehouse
level2_Final.dat
level2_Final.raw
level2_Final.dat
level2_Final.raw
level2_Final.sep
12
20/10
21/10
IGMD/manplant 2: ENGINES OF EVIL Manufacturing Plant
level3_Final.dat
level3_Final.raw
level3_Final.dat
level3_Final.raw
level3_Final.sep
13
20/11
21/11
IGMD/lab 3: PUZZLE PIECES Bio-Research Lab
level4_Final.dat
level4_Final.raw
level4_Final.dat
level4_Final.raw
level4_Final.sep
14
20/12
21/12
IGMD/Airport 4: TIGER BY THE TAIL Airport Assault
level6_Final.dat
level6_Final.raw
level6_Final.dat
level6_Final.raw
level6_Final.sep
15
20/13
21/13
IGMD/Airport_III 5: HOT PURSUIT Airport Cargo Hangars
level8_Final.dat
level8_Final.raw
level8_Final.dat
level8_Final.raw
level8_Final.sep
16
20/14
21/14
IGMD/tctf 6: COUNTERATTACK TCTF Regional HQ
level9_Final.dat
level9_Final.raw
level9_Final.dat
level9_Final.raw
level9_Final.sep
17
20/15
21/15
IGMD/power 7: A FRIEND IN NEED Atmospheric Conversion Center (exterior)
level10_Final.dat
level10_Final.raw
level10_Final.dat
level10_Final.raw
level10_Final.sep
4
20/2
21/2
IGMD/power_II 8: AN INNOCENT LIFE Atmospheric Conversion Center (interior)
level11_Final.dat
level11_Final.raw
level11_Final.dat
level11_Final.raw
level11_Final.sep
5
20/3
21/3
IGMD/state 9: TRUTH AND CONSEQUENCES Regional State Building
level12_Final.dat
level12_Final.raw
level12_Final.dat
level12_Final.raw
level12_Final.sep
6
20/4
21/4
IGMD/roof 10: CAT AND MOUSE Rooftops
level13_Final.dat
level13_Final.raw
level13_Final.dat
level13_Final.raw
level13_Final.sep
7
20/5
21/5
IGMD/dream_lab 11: DREAM DIVER Doctor Hasegawa's Lab
level14_Final.dat
level14_Final.raw
level14_Final.dat
level14_Final.raw
level14_Final.sep
8
20/6
21/6
IGMD/neuro 12: SINS OF THE FATHER TCTF Science Prison
level18_Final.dat
level18_Final.raw
level18_Final.dat
level18_Final.raw
level18_Final.sep
9
20/7
21/7
IGMD/tctf_ii 13: PHOENIX RISING TCTF Regional HQ (redux)
level19_Final.dat
level19_Final.raw
level19_Final.dat
level19_Final.raw
level19_Final.sep
10
20/8
21/8
IGMD/compound 14: DAWN OF THE CHRYSALIS Syndicate Mountain Compound
outro.bik
18
--
Movie plays when Oni is beaten (see note below)

Notes

level0_Final

The level 0 data is only loaded once, when Oni starts.

IGMD/global

IGMD/global/ is not present by default, but if it is created, the functions in any scripts placed inside it will be accessible from all levels; however, the Windows demo engine ignores the global/ folder.

intro.bik, outro.bik

The movie files are not needed for Oni to run. You can thus rename or move intro.bik out of GameDataFolder so Oni starts faster. Note that if you remove outro.bik, Oni will quit immediately after beating the game because it would normally play the outro and then quit.

Epic Games Tools, the makers of the Bink video format, offer standalone apps for all platforms if you want to watch the .bik files on their own. However ffmpeg also understands the Bink format, meaning that you can use VLC or another ffmpeg-based client to watch the movies.

How Oni finds its GameDataFolder

In Windows, Oni's engine first looks in the working directory (aka "."). If ".\GameDataFolder" is missing, Oni tries parent folders all the way up to the root (e.g., it looks for "C:\Program Files\Oni\GameDataFolder", then "C:\Program Files\GameDataFolder", then "C:\GameDataFolder"). As a last resort, it looks for ".\OniEngine\GameDataFolder" the same way.

The Mac Oni app follows the same search pattern for GameDataFolder/, but does not look for OniEngine/GameDataFolder/.