Windows Oni vs. Mac Oni: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(→‎Level logic: improved explanation; mentioned that AE distributes the Mac versions)
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{update}}
{{UpdatedForOniX|1.0.0}}
{{Hatnote|For a comparison of Win/Mac Oni with PS2 Oni, see [[Oni (PlayStation 2)]].}}
There are no major gameplay or content differences between the Windows and Mac versions. However, there <u>are</u> major differences in file format and minor differences in scripting functionality that modders should be aware of.
{{TOCfloat|limit=2}}
==Game data files==
The most visible difference in vanilla retail Oni is the presence of .sep files in the [[GameDataFolder]] of Mac Oni and the Windows Oni demo. This and other changes were made either for general optimization or to meet some limitation on the Mac side. Due to the fact that Mac Oni [[History of Mac Oni|was finished after]] Windows retail Oni but before the Windows demo was made, some changes made for Mac Oni carried over to the Windows demo. (This addition of .sep files was also carried into [[OniX]].) To illustrate what sort of level data files you'll find in the GameDataFolder:


There are no significant gameplay differences between the PC and Mac versions. However, the following information is important for all who hope to mod or script Oni in a way that is Mac-compatible.
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
!Windows retail
!Mac demo, Mac retail<br />Windows demo, OniX
|-
|<center>*.dat, *.raw</center>
|<center>*.dat, *.raw, *.sep</center>
|}


==PC exclusives==
To learn about the differences in how resources are stored in these files, read the articles on [[OBD:Instance_file_format|instance files]] and [[OBD:Raw_and_separate_file_formats|raw and separate files]], especially the "Mac vs. Windows" section in the latter.


===[[Customizing/Binding|Bindable]] events===
==Level logic==
Everything that has to do with cutscene authoring (recording character movements), and probably a little bit more.
The contents of the [[IGMD]] folders are exactly the same on Windows and the Mac, except for tctf_ii ({{C13}}). When the Mac version of Oni was gold-mastered, these changes had been made in the logic of the boss battle:
*[[Special:Diff/21491/21492|Differences in tctf2.bsl]] (prevents Shinatama from assuming combat stance when lasers are triggered and turrets begin firing)
*[[Special:Diff/21493/21494|Differences in tctf_ii_cutscene.bsl]] (prevents Griffin from being throwable through the force field)


===[[BSL|BSL]] functions/variables===
These updated BSL files are supplied to both Windows and Mac users of the [[Anniversary Edition]] for consistency's sake.
The PC build is probably older, and so it has a lot of "dev-and-debug" functionalities that were not used by the original script logic.
When the Mac and PC demo releases were built, some of those features were completely left out.
[http://geyser.oni2.net/PCvsMac/script_commands_PConly.txt HERE] is the full list of commands and variables that are unavailable on Mac or PC demo (by order of appearance in '''script_commands.txt''').
While some of them may be obsolete, and thus may have little effect on PC, a lot of them are definitely ''not'' defunct, and their lack on Mac is a major limitation. For instance, one should note :
*the absence of dev-console-related commands (the [[Developer Mode|Dev Mode]], however, is available on Mac and PC demo : just somewhat limited)
*the absence of '''chr_location''' and '''chr_location_settocamera'''. The placement of characters is thus limited by the original set of "teleport" flags.
*the absence of '''chr_focus''' and '''sc_focus'''. Thus none of the following is scriptable on Mac as of today :
**shapeshifting bots and Tag mode in [[AE:OTA|Oni Team Arena]]
**squad gameplay
**intermittently "switching" to characters that are NPCs in the original logic (used in a few mods e.g. Loser's Warehouse)
*the absence of '''chr_health''', '''wp_reset''', and a few other commands/variables that make scripting more flexible.
*other stuff I'm forgetting (there's quite a lot missing, really)
For further information, here are the complete lists of commands/variables as obtained with the '''dump_docs''' function call :
*[http://geyser.oni2.net/PCvsMac/script_commands_Mac.txt script_commands_Mac.txt]
*[http://edt.oni2.net/files/script_commandsMacBeta.txt script_commands_MacBeta.txt]
*[http://geyser.oni2.net/PCvsMac/script_commands_PC.txt script_commands_PC.txt]
*[[BSL:Commands | A comparison of the commands/variables side by side, PC, Mac, and Mac Beta]]
As for the effect of the commands and variables, the best documentation so far is on ssg's [http://ssg.oni2.net/commands.htm Oni Stuff]. It covers the full list of commands/variables, i.e. that of the PC version. Porting it to Oni Galore, slowly but surely...


==Windows exclusives==
===Data format===
There are no major features of the game data that are only available in Windows Oni except an extended header for [[SNDD]] (sound data) which isn't actually taken advantage of.


----
===BSL===
*Windows Oni can turn the BSL boolean '''li_center_cursor''' on/off, whereas this behavior is hardcoded to "true" on Macs.
*The BSL boolean '''ai2_debug_localmove_lines'''.
 
===Daodan DLL===
It's probably safe to say that all players these days use the [[Daodan DLL]] with Windows Oni. The Daodan confers these exclusives:
*Support for multibyte languages such as Chinese.
*The name of a newly-acquired weapon is printed at your feet when you pick it up.
*New BSL commands for math, game characters, and output, listed [[Daodan_DLL#Added_BSL_functions|HERE]].
*Level files not ending in "_Final" will be loaded by Oni.
 
===OniX===
[[OniX]] is currently Windows-only, though it will come to Macs in the future. OniX does not currently have more features than the last build of Oni for Intel Macs (see below), but it runs on modern Windows machines, which sadly Mac users cannot say about the Intel Mac build since support for 32-bit apps was dropped from macOS in 2019. OniX also supports HDPI and high refresh rate displays.


==Mac exclusives==
==Mac exclusives==
===A newer (stabler?) build===
===A deluxe game app===
The current build of Oni for Intel Macs (see [[AE:FERAL|HERE]] for link) is based on code that has been touched up by Bungie, Omni Group, and Feral Interactive since Oni was gold mastered for Windows in 2000 (see [[History of Mac Oni]] for details), so they may have fixed a few issues with sounds, mouse, rendering, and AI. On the whole, the Mac build of Oni ''may'' have fewer crash issues as a result.
The last build of [[FERAL|Oni for Intel Macs]] is based on code that has been touched up by Bungie, The Omni Group, and Feral Interactive in the years since Oni was gold mastered for Windows in 2000 (see [[History of Mac Oni]] for details). Thus many issues have been fixed, including the following that have not been reproduced by the Daodan DLL or OniX:
*Lens flares shining through objects.
*Crashes from missing textures, missing level files, and excessive particle classes.
 
See [[FERAL#Bug_fixes|HERE]] for a full list of fixes which is compared to the current state of Windows Oni as patched by the Daodan DLL.


Also, many of the patches made by the Daodan DLL to Windows Oni were implemented into the Mac Intel build. Below are whatever new features were added, or changes made, that cause Mac Oni to differ from Windows Oni + Daodan DLL.
The major caveat with this Intel Mac build is that, being 32-bit, it cannot run on a version of macOS past 10.14 Mojave.


===Bigger textures===
===Bigger textures===
Macs support 1024x1024 textures, whereas the Daodan DLL only allows up to 512x512 in Windows, although in practice this isn't much of an advantage because no one will go out of their way to make such enormous textures just for Mac players when they can keep their mod to 512x512 and make it playable for everyone ^_^
Macs support 1024x1024 textures, whereas the Daodan DLL only allows up to 512x512 in Windows, although in practice this isn't much of an advantage because no one will go out of their way to make such enormous textures just for Mac players when they can keep their mod to 512x512 and make it playable for everyone ^_^


===bsl_config.txt===
===BSL===
Any BSL commands left in a text file with this name alongside the Oni app will be run upon level load. This is equivalent to using the "[[IGMD/global|global]]" folder in IGMD, which the Mac also supports as of the Intel build.
Any BSL commands left in a text file with the name '''bsl_config.txt''' alongside the Oni app will be run upon level load. This is equivalent to using the "[[IGMD/global|global]]" folder in IGMD, which the Mac also supports.


===New BSL commands===
====Unique====
Modders may find it helpful to set the following new variables to true: '''am_show_texturename''', '''chr_show_weaponid''', and '''show_triggervolumes''' (also enabled with Ctrl-Shift-X).
*The mouse speed can be set with '''mouse_acceleration''' (0.1-1.0).
*The name of a weapon will display when it is equipped if '''chr_show_weaponid''' is set to 1 (a similar feature that comes through the Daodan DLL will show for all players, not just in Developer Mode).
*You can see the name of a texture by setting '''am_show_texturename''' to 1 and pointing to a texture while holding a weapon with an active laser sight.
*Macs have a few probably-useless variables for graphics left over from the debugging days at Bungie: '''debug_font_cache''', '''gl_disable_dxt1''', '''gl_disable_packed_pixels''', and '''gl_mipmap_offset'''.


===Modified BSL commands===
====Improved====
*'''slowmo''' works differently, but how?
The function '''chr_location''' can take either the AI's name or the AI's index number on Macs, but only the AI's index number on Windows.
*'''chr_location''' in Windows takes a character index number as the first parameter; on Mac, you can pass it either the index <u>or</u> the AI name.


===launch_args.txt===
====Functional====
Instead of using the Terminal to pass launch arguments to the Oni binary, which is extra complicated on the Mac, you can list them in a file with this name next to the Oni app, separated by spaces, e.g. "-fsaa2x -noswitch".
The following commands and variables seem to work on Macs but not in Windows.
*You can see attack extents by passing an animation name to the '''chr_showextent''' command (with the '''chr_showextent_globals''' variable set to 1). You can see attack extents with the '''chr_showextent_globals''' variable set to 1 by watching characters attack (or by passing an animation name to the '''chr_showextent''' command).
*These variables can also be useful for modders: '''ai2_showastar''', '''am_hit_everything''', '''am_show_axes''', '''character_name_distance''', '''patrolpath_name_distance''', '''show_characters''', '''show_flags''', '''show_patrolpaths''', '''show_sound_all''', '''show_sound_rectangles''', '''show_sound_spheres''', and '''turret_show_debug'''.


===Graphical niceties===
===Launch arguments===
You can supply the launch arguments '''-fsaa2x''' or '''-fsaa4x''' to get full-screen anti-aliasing.
Instead of using the Terminal to pass launch arguments to the Oni binary, you can list them in a file with the name '''launch_args.txt''' next to the Oni app, separated by spaces, e.g. "-fsaa2x -noswitch".


===Diary pages===
On top of this, a launch panel appears if launching Oni with Command held down. Most of the launch arguments can be chosen using the GUI, and if not, they can be typed in manually in the Advanced tab.
The Mac supports 30 weapon pages in the diary, over the Windows limit of 15.


===Bindable cheats===
===Graphical niceties===
Oni's original cheat codes can be bound to keys in key_config.txt.
You can supply the launch arguments '''-fsaa2x''' or '''-fsaa4x''' to get full-screen anti-aliasing, and '''-af2x''' or '''-af4x''' to get anisotropic filtering.
 
----
 
==Other differences==
===Level logic===
The contents of the [[IGMD|IGMD]] folders are exactly the same on Mac and PC, except for tctf_ii ({{C13}}); these changes were made in the logic of the boss battle and cutscenes:
*[http://wiki.oni2.net/Special:ComparePages?page1=BSL%3ATutorial%2Ftctf2.bsl&rev1=&page2=BSL%3ATutorial%2Ftctf2.bsl_%28Mac%29&rev2=&action=&diffonly=&unhide= Differences in tctf2.bsl]
*[http://wiki.oni2.net/Special:ComparePages?page1=BSL%3ATutorial%2Ftctf_ii_cutscene.bsl&rev1=&page2=BSL%3ATutorial%2Ftctf_ii_cutscene.bsl_%28Mac%29&rev2=&action=&diffonly=&unhide= Differences in tctf_ii_cutscene.bsl]
 
The [[IGMD/global|global]] folder is not recognized by the PC demo and Mac PPC engines, but is by the Mac Intel build from Feral.
 
===File formats===
'''Differences between Mac and PC files:'''
 
'''files'''
 
PC: *.dat, *.raw
 
Mac and PC demo: *.dat, *.sep, *.raw
 
'''dat file'''
 
PC: first 4 bytes are 1F 27 DC 33
 
Mac and PC demo: first 4 bytes are 61 30 C1 23
 
(Mac beta: first bytes are 81 11 8D 23)
 
*special: Mac [[OBD:SNDD|SNDD]] files are 32 bytes long, PC and PC demo [[OBD:SNDD|SNDD]] files are 96 bytes long
 
'''sep file'''
 
PC: no sep files
 
Mac and PC demo: contains the offset data of the [[OBD:BINA|BINA]], [[OBD:OSBD|OSBD]] and [[OBD:TXMP|TXMP]] files
 
*special: sep-file link in the TXMP file
 
'''raw file'''
 
PC: contains the offset data of the [[OBD:AGDB|AGDB]], [[OBD:AKVA|AKVA]], [[OBD:BINA|BINA]], [[OBD:OSBD|OSBD]], [[OBD:SNDD|SNDD]], [[OBD:SUBT|SUBT]], [[OBD:TRAM|TRAM]] and [[OBD:TXMP|TXMP]] file


Mac and PC demo: contains the offset data of the [[OBD:AKVA|AKVA]], [[OBD:SNDD|SNDD]], [[OBD:SUBT|SUBT]] and [[OBD:TRAM|TRAM]] files
===Gameplay===
The launch argument '''-wsafety''' allows you to activate the weapon safety by pressing the button bound to "weapon_safety", which prevents your weapon from firing when you click, so you can punch and kick with a loaded weapon. The launch argument '''-parkour''' allows the AI to jump over obstacles in pursuit of the player.


*special 1: Mac and PC demo haven't [[OBD:AGDB|AGDB]] files
==Developer Mode==
The difference in the hard-coded controls for the Dev Mode camera are illustrated [[Developer Mode#Camera_controls|HERE]].


*special 2: Mac uses AIFF sounds, PC and PC demo uses WAV sounds
==Cheats==
The Daodan DLL adds the same cheats to Windows Oni that were added to Mac Oni in code, however "shinobi" differs as follows:
*Windows: Player always has 1 HP, but is immune to weapons and the enemy AI cannot hear the player.
*Mac: The enemy AI cannot hear the player, and their vision range is reduced to 25% of normal distance.


[[Category:Modding information]]
[[Category:Engine docs]][[Category:Oni Support]]

Latest revision as of 23:19, 30 March 2023

For a comparison of Win/Mac Oni with PS2 Oni, see Oni (PlayStation 2).

There are no major gameplay or content differences between the Windows and Mac versions. However, there are major differences in file format and minor differences in scripting functionality that modders should be aware of.

Game data files

The most visible difference in vanilla retail Oni is the presence of .sep files in the GameDataFolder of Mac Oni and the Windows Oni demo. This and other changes were made either for general optimization or to meet some limitation on the Mac side. Due to the fact that Mac Oni was finished after Windows retail Oni but before the Windows demo was made, some changes made for Mac Oni carried over to the Windows demo. (This addition of .sep files was also carried into OniX.) To illustrate what sort of level data files you'll find in the GameDataFolder:

Windows retail Mac demo, Mac retail
Windows demo, OniX
*.dat, *.raw
*.dat, *.raw, *.sep

To learn about the differences in how resources are stored in these files, read the articles on instance files and raw and separate files, especially the "Mac vs. Windows" section in the latter.

Level logic

The contents of the IGMD folders are exactly the same on Windows and the Mac, except for tctf_ii (CHAPTER 13 . PHOENIX RISING). When the Mac version of Oni was gold-mastered, these changes had been made in the logic of the boss battle:

These updated BSL files are supplied to both Windows and Mac users of the Anniversary Edition for consistency's sake.

Windows exclusives

Data format

There are no major features of the game data that are only available in Windows Oni except an extended header for SNDD (sound data) which isn't actually taken advantage of.

BSL

  • Windows Oni can turn the BSL boolean li_center_cursor on/off, whereas this behavior is hardcoded to "true" on Macs.
  • The BSL boolean ai2_debug_localmove_lines.

Daodan DLL

It's probably safe to say that all players these days use the Daodan DLL with Windows Oni. The Daodan confers these exclusives:

  • Support for multibyte languages such as Chinese.
  • The name of a newly-acquired weapon is printed at your feet when you pick it up.
  • New BSL commands for math, game characters, and output, listed HERE.
  • Level files not ending in "_Final" will be loaded by Oni.

OniX

OniX is currently Windows-only, though it will come to Macs in the future. OniX does not currently have more features than the last build of Oni for Intel Macs (see below), but it runs on modern Windows machines, which sadly Mac users cannot say about the Intel Mac build since support for 32-bit apps was dropped from macOS in 2019. OniX also supports HDPI and high refresh rate displays.

Mac exclusives

A deluxe game app

The last build of Oni for Intel Macs is based on code that has been touched up by Bungie, The Omni Group, and Feral Interactive in the years since Oni was gold mastered for Windows in 2000 (see History of Mac Oni for details). Thus many issues have been fixed, including the following that have not been reproduced by the Daodan DLL or OniX:

  • Lens flares shining through objects.
  • Crashes from missing textures, missing level files, and excessive particle classes.

See HERE for a full list of fixes which is compared to the current state of Windows Oni as patched by the Daodan DLL.

The major caveat with this Intel Mac build is that, being 32-bit, it cannot run on a version of macOS past 10.14 Mojave.

Bigger textures

Macs support 1024x1024 textures, whereas the Daodan DLL only allows up to 512x512 in Windows, although in practice this isn't much of an advantage because no one will go out of their way to make such enormous textures just for Mac players when they can keep their mod to 512x512 and make it playable for everyone ^_^

BSL

Any BSL commands left in a text file with the name bsl_config.txt alongside the Oni app will be run upon level load. This is equivalent to using the "global" folder in IGMD, which the Mac also supports.

Unique

  • The mouse speed can be set with mouse_acceleration (0.1-1.0).
  • The name of a weapon will display when it is equipped if chr_show_weaponid is set to 1 (a similar feature that comes through the Daodan DLL will show for all players, not just in Developer Mode).
  • You can see the name of a texture by setting am_show_texturename to 1 and pointing to a texture while holding a weapon with an active laser sight.
  • Macs have a few probably-useless variables for graphics left over from the debugging days at Bungie: debug_font_cache, gl_disable_dxt1, gl_disable_packed_pixels, and gl_mipmap_offset.

Improved

The function chr_location can take either the AI's name or the AI's index number on Macs, but only the AI's index number on Windows.

Functional

The following commands and variables seem to work on Macs but not in Windows.

  • You can see attack extents by passing an animation name to the chr_showextent command (with the chr_showextent_globals variable set to 1). You can see attack extents with the chr_showextent_globals variable set to 1 by watching characters attack (or by passing an animation name to the chr_showextent command).
  • These variables can also be useful for modders: ai2_showastar, am_hit_everything, am_show_axes, character_name_distance, patrolpath_name_distance, show_characters, show_flags, show_patrolpaths, show_sound_all, show_sound_rectangles, show_sound_spheres, and turret_show_debug.

Launch arguments

Instead of using the Terminal to pass launch arguments to the Oni binary, you can list them in a file with the name launch_args.txt next to the Oni app, separated by spaces, e.g. "-fsaa2x -noswitch".

On top of this, a launch panel appears if launching Oni with Command held down. Most of the launch arguments can be chosen using the GUI, and if not, they can be typed in manually in the Advanced tab.

Graphical niceties

You can supply the launch arguments -fsaa2x or -fsaa4x to get full-screen anti-aliasing, and -af2x or -af4x to get anisotropic filtering.

Gameplay

The launch argument -wsafety allows you to activate the weapon safety by pressing the button bound to "weapon_safety", which prevents your weapon from firing when you click, so you can punch and kick with a loaded weapon. The launch argument -parkour allows the AI to jump over obstacles in pursuit of the player.

Developer Mode

The difference in the hard-coded controls for the Dev Mode camera are illustrated HERE.

Cheats

The Daodan DLL adds the same cheats to Windows Oni that were added to Mac Oni in code, however "shinobi" differs as follows:

  • Windows: Player always has 1 HP, but is immune to weapons and the enemy AI cannot hear the player.
  • Mac: The enemy AI cannot hear the player, and their vision range is reduced to 25% of normal distance.