Windows Oni vs. Mac Oni: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(→‎Modified BSL commands: no idea why I wrote that about slowmo)
(updating for Intel Mac build; not sure about the statement left under "PC exclusives" about bindable events)
Line 1: Line 1:
{{update}}
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.
 
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.


==PC exclusives==
==PC exclusives==
===[[Customizing/Binding|Bindable]] events===
===[[Customizing/Binding|Bindable]] events===
Everything that has to do with cutscene authoring (recording character movements), and probably a little bit more.
Everything that has to do with cutscene authoring (recording character movements), and probably a little bit more.
===[[BSL|BSL]] functions/variables===
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...
----


==Mac exclusives==
==Mac exclusives==
Line 64: Line 38:


==Other differences==
==Other differences==
===BSL functions===
*PCs have '''co_show_all''', which prints all commands and variables to the console, though this is of dubious usefulness compared to dump_docs, which writes all commands and variables to script_commands.txt on both PC and Mac.
*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===
===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:
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:

Revision as of 02:25, 4 May 2013

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

Bindable events

Everything that has to do with cutscene authoring (recording character movements), and probably a little bit more.

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 co_show_all, which prints all commands and variables to the console, though this is of dubious usefulness compared to dump_docs, which writes all commands and variables to script_commands.txt on both PC and Mac.
  • 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

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 SNDD files are 32 bytes long, PC and PC demo SNDD files are 96 bytes long

sep file

PC: no sep files

Mac and PC demo: contains the offset data of the BINA, OSBD and TXMP files

  • special: sep-file link in the TXMP file

raw file

PC: contains the offset data of the AGDB, AKVA, BINA, OSBD, SNDD, SUBT, TRAM and TXMP file

Mac and PC demo: contains the offset data of the AKVA, SNDD, SUBT and TRAM files

  • special 1: Mac and PC demo haven't AGDB files
  • special 2: Mac uses AIFF sounds, PC and PC demo uses WAV sounds