Windows Oni vs. Mac Oni

From OniGalore
Revision as of 18:31, 24 May 2013 by Iritscen (talk | contribs) (→‎File formats: wording)
Jump to navigation Jump to search

There are no significant gameplay differences between the PC and Mac versions. However, there are some minor differences in scripting functionality that modders should be aware of.

PC exclusives

There are no known significant features found only in Windows Oni, but there are a couple differences in BSL functionality (see "Other differences" section below) and in the Developer Mode controls.

Mac exclusives

A newer (stabler?) build

The current build of Oni for Intel Macs (see 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.

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.

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_config.txt

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 "global" folder in IGMD, which the Mac also supports as of the Intel build.

New BSL commands

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).

Modified BSL commands

  • chr_location in Windows takes a character index number as the first parameter; on Mac, you can pass it either the index number or the AI name as a string.

launch_args.txt

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".

Graphical niceties

You can supply the launch arguments -fsaa2x or -fsaa4x to get full-screen anti-aliasing.

Diary pages

The Mac supports 30 weapon pages in the diary, over the Windows limit of 15.

Bindable cheats

Oni's original cheat codes can be bound to keys in key_config.txt.


Other differences

BSL functions

  • PCs have the handy li_center_cursor, though this behavior is hardcoded to be on all the time on Macs.
  • chr_location can take the AI's name as a string or the AI's index number on Macs, but only the AI's index number on PC.
  • Macs can show attack extents by passing an animation name to the chr_showextent command (with the chr_showextent_globals variable set to true).

BSL variables

  • Only PCs have the boolean ai2_debug_localmove_lines.
  • Macs can show attack extents with the chr_showextent_globals variable set to true by watching characters attack (or by passing an animation name to the chr_showextent command).
  • Macs can also show trigger volumes using show_triggervolumes.
  • Macs can display the weapon name when equipping a weapon if chr_show_weaponid is true.
  • 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.

Level logic

The contents of the IGMD folders are exactly the same on Mac and PC, except for tctf_ii (CHAPTER 13 . PHOENIX RISING); these changes were made in the logic of the boss battle and cutscenes:

The global folder is not recognized by the PC demo and Mac PPC engines, but is by the Mac Intel build from Feral.

File formats

The most visible difference between the game data in Mac and Windows Oni is the presence of .sep files on the Mac. 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 Oni and the demos were finished after the code was finalized for both platforms, the changes for Mac Oni carried over to the Windows demo. To learn more about these files, read OBD:Instance file format. But to illustrate, here are the kinds of level data files that you'll find in the GameDataFolder:

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

.dat files

These files are mostly identical between Mac and Windows, but Mac SNDD resources are 32 bytes long, whereas Windows and Windows demo SNDD resources (wrappers for the actual sound data in the .raw files) are 96 bytes long; this is because of the change in SNDD format noted below under ".raw files".

.raw files

In Windows, these files contain the core data of the AGDB, AKVA, BINA, OSBD, SNDD, SUBT, TRAM and TXMP resources.

On Mac and in the Windows demo, these files only contain the core data of the AKVA, SNDD, SUBT and TRAM resources; the rest have been moved to the .sep files (except for AGDB resources, which were omitted from Macs and the Windows demo because this data is unused by Oni).

In terms of differences in the actual data formats, the most notable change is that Macs use SNDDs in the AIFF format, and Windows (retail and demo) uses WAV sound data.

.sep files

Windows retail Oni lacks these files, all the relevant data being in the .raw files. On Macs and in the Windows demo, .sep files contain the BINA, OSBD and TXMP resources. For TXMPs in particular, only the "wrapper" for the texture data is stored in a Mac's .raw file, with a link to the actual image data where it is found in the level's .sep file.