Oni engine patches (Mac PPC): Difference between revisions

m
OniX-affected article
m (→‎List of patches: co_display, door_ignore_locks added to patch)
m (OniX-affected article)
 
(32 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__TOC__
{{Hatnote|For the full history of the Mac builds of Oni, see [[History of Mac Oni|here]]. For information on all patches to Windows and Mac Oni, see the [[:Category:Patches|Patches category]].}}
=History=
{{UpdatedForOniX|1.0.0}}
The original build of the Oni application (v1.1; 1.5MB) was compiled by Bungie for the PowerPC processor that Macs were using at the time. However, it was also a Classic app, written for Mac OS 9. Mac OS X was being released later that year, but Bungie did not have time to perform "carbonization", the process developers were using at the time to make Classic apps nominally OS X-compatible.
{{fmbox
  | text = This is the game app for PPC Macs. It does not run on versions of Mac OS X after 10.6, and so it is no longer supported by the community. See [[FERAL|this page]] for a download link for the Intel Mac build.
  }}
From 2001 through 2003, The Omni Group released new builds of the Oni application for PowerPC Macs running Mac OS X. The main purpose of these builds was to improve the game's compatibility with OS X. Certain changes from Bungie's original Mac build of Oni were made intentionally or accidentally, but the purpose of the page below is to document additional hex patches which fans made to the game application to the last Omni build in the years after it came out in 2003. Later on, when Macs were transitioning to Intel, Feral Interactive released a native Intel build of Oni (see [[FERAL]]) with many changes that were requested by fans or that were first made to Windows Oni with the [[Daodan DLL]].


With Bungie's permission, Omni Group [http://www.omnigroup.com/mailman/archive/omni-press/2001/000008.html released] a free, carbonized port by the end of the year (v1.0 (Mac OS X), version 1.36; 4.6MB). At the time, this port allowed Macs running OS X to run Oni without booting into the Classic environment within OS X, a convenience but not a necessity.
==Download==
 
:http://edt.oni2.net/files/Oni.zip -- Updated on July 2009, with all patches listed below except the bgra32 patch.
However, an unforeseen development years later made the port invaluable: the switching of the Macintosh processor family from Motorola/IBM's PowerPC to Intel's x86 chips. The Intel Macs made today are incapable of running the Classic environment, therefore the Omni port of 2001 is the necessary ingredient in being able to play the game at all.
 
Various other elements of the OS and hardware have changed over the years besides the processor family, making the original Omni port unable to run on modern Macs without some modifications. Through the efforts of the Oni community, various hex edits have been devised as ways to not only allow the application to run under the latest versions of OS X, but to extend the potential for Oni modding.


==Known Issues==
*While playing in Windowed mode, the game and computer cursor are not synced, so one can click outside the game window and disrupt the game.  Workaround:  set the game resolution to the display resolution (or as close as possible) to minimize the disruption.
*In Dev Mode, the numpad number keys 0-9 are not accessible. Thus the default NumPad keys to move the camera will not work.  Workaround: in the key_config.txt file, bind other keys to the camera commands.
*In Dev Mode, when entering commands in the console (accessed with the tilde (~) key), the Shift key will not work with the letters a-z, therefore commands requiring uppercase letters cannot be entered.  No known workaround while using the console, but the commands that require uppercase letters can be run by entering them in [[BSL]] scripts.


=List of patches=
==List of patches==
A brief timeline of the upgrades so far:
A brief timeline of the upgrades:
{|
{|
|
|
Line 18: Line 22:
!Date!!Offset!!Old hex!!New hex!!Description
!Date!!Offset!!Old hex!!New hex!!Description
|-align=center
|-align=center
|2008/10|| || ||  
|2009/07||0x00192643<br>0x00192647||0x06<br>0x06||0x07<br>0x0B
|align=left|Added BSL commands: chr_focus, chr_location, chr_set_class, weapon_reset, co_display and door_ignore_locks.
|align=left|RGBA8888 texture support (On hold, problem with color shifts and transparency)
|-align=center
|2009/05|||0x000A42CC||B13C0054<br>B13C0052<br>913C00FC<br>B13C004C<br>A00B00C2||913C0008<br>913C0008<br>913C0008<br>91 3C0008<br>913C0008
|align=left|Fix Mercury Bow Exploit
|-align=center
|2009/05|||0x0001650C<br>0x00016510<br>0x00016514<br>0x00016568<br>0x0001656C<br>0x00016574<br>0x0001655C||D141005C<br>D1010060<br>D121 0064<br>C0010060<br>C1A1005C<br>C0210064<br>ED6B||C0010074<br>C1A10078<br>C021007C<br>7F86E378<br>7F86E378<br>7F86E378<br>EC2B
|align=left|Particle dodging
|-align=center
|2009/05|| || ||
|align=left|Reverted Nov. 14 cheat code changes, "thedayismine" was causing crashes when player used shapeshifting and then called up Diary screen. "thedayismine" is removed from table and "killmequick" is replaced by "x" for easier entry now that it is once again the substitute code for Dev Mode.<br> 
'''Code for Dev Mode is now 'x'''', not "killmequick".<br> 
Changed wording of "Ultra Mode" to "Developer Mode".
|-align=center
|2008/12|| || ||
|align=left|Restored some Debug commands<br>
Replaced chr_disable_visactive with ai2_showfights<br>
Replaced chr_lod with ai2_showcombatranges<br>
Replaced gs_show_corpses with ai2_showgrids<br>
Replaced single_step with ai2_showlocalmelee<br>
Replaced draw_every_frame_multiple with ai2_showpaths<br>
Replaced gs_screen_shot_reduce with ai2_showprojectiles<br>
|-align=center
|2008/11|||0x0019025C||00 00 00 00<br>00 00 00 00<br>00 00 00 00<br>00 00 00 00<br>||00 17 22 58<br>00 17 22 44<br>00 17 22 39 <br>00 00 00 0B
|align=left|Bound "thedayismine" to Dev Mode
|-align=center
|2008/11|||0x0019024B||00 00 00 08||00 00 00 14
|align=left|Restored "killmequick" to Ultra Mode
|-align=center
|2008/11|| || ||  
|align=left|Added 52 BSL commands (12 functions and 36 variables).
chr_active, chr_aim_width, chr_all_active, chr_auto_aim_arc, chr_auto_aim_dist, chr_big_head_amount, chr_block_angle, chr_disable_melee, chr_disable_visactive, chr_display_combat_stats, chr_draw_all_characters,, chr_draw_dot, chr_focus, chr_health, chr_location, chr_location_settocamera, chr_lod, chr_main_class, chr_mini_me, chr_mini_me_amount, chr_pin_character, chr_set_class, chr_weapon, chr_weapon_auto_aim, chr_who, cm_canter_unarmed, cm_canter_weapon, cm_distance, cm_height, co_display, corpse_reset, door_ignore_locks, draw_every_frame, draw_every_frame_multiple, fast_mode, fx_laser_width, gs_fov_set, gs_input_accel, gs_screen_shot_reduce, gs_show_corpses, gs_show_environment, gs_show_ui, m3_fill_solid, m3_shade_vertex, make_corpse, powerup_reset, show_performance, single_step, ui_fill_element, weapon_reset, wp_kickable, wp_scale_adjustment.
|-align=center
|2008/10||0x1220AF<br>0x1220B3<br>0x1151C3||06<br>06<br>10||46<br>46<br>40
|align=left|1024x1024 texture support added
|-align=center
|-align=center
|2008/06||0x0005E4C2||00||7F
|2008/06||0x0005E4C2||00||7F
|align=left|Increased flailing timer (For jetpack hack)
|align=left|Flailing timer increased (for jetpack hack)
|-align=center
|2008/06||0x001151C3||04||10
|align=left|to support 512x512 textures EDIT: Oni crashes with 512x512 textures
|-align=center
|-align=center
|2008/05||0x000E2D19||7A||9A
|2008/05||0x000E2D19||7A||9A
|align=left|non-"_Final" levels are now valid
|align=left|Non-"_Final" levels are now valid
|-align=center
|-align=center
|2007/07||0x00096DCB<br>0x00096DE3||04<br>04||20<br>20
|2007/07||0x00096DCB<br>0x00096DE3||04<br>04||20<br>20
|align=left|pathfinding grid cache size x8
|align=left|Pathfinding grid cache size increased x8
|-align=center
|-align=center
|2007/05<br>2007/06<br>2007/07||0x00189FDC
|2007/05<br>2007/06<br>2007/07||valign=top|0x00189FDC
|90 61 00 18<br>90 81 00 1C<br>90 A1 00 20<br>90 C1 00 24<br>90 E1 00 28<br>91 01 00 2C<br>91 21 00 30<br>91 41 00 34<br>4E 80 00 20
|90&nbsp;61&nbsp;00&nbsp;18<br>90 81 00 1C<br>90 A1 00 20<br>90 C1 00 24<br>90 E1 00 28<br>91 01 00 2C<br>91 21 00 30<br>91 41 00 34<br>4E 80 00 20
|7C EA 3B 78<br>7C C9 33 78<br>7C A8 2B 78<br>7C 87 23 78<br>7C 66 1B 78<br>38 60 00 00<br>38 83 FF FF<br>38 A3 00 01<br>4B F2 F6 F8
|7C&nbsp;EA&nbsp;3B&nbsp;78<br>7C C9 33 78<br>7C A8 2B 78<br>7C 87 23 78<br>7C 66 1B 78<br>38 60 00 00<br>38 83 FF FF<br>38 A3 00 01<br>4B F2 F6 F8
|align=left|console output display fixed
|align=left|Console output display fixed
|-align=center
|-align=center
|2007/01||0x001B6050||0D 00 00 0A||0D 00 00 0D
|2007/01||0x001B6050||0D&nbsp;00&nbsp;00&nbsp;0A||0D&nbsp;00&nbsp;00&nbsp;0D
|align=left|Return/Enter key fixed
|align=left|Return/Enter key fixed
|-align=center
|-align=center
|2006/08||0x00117B36||1F 03||1F 02
|2006/08||0x00117B36||1F 03||1F 02
|align=left|"Intel fix" (GL extension list?)
|align=left|GL extension list crash fixed
|-align=center
|-align=center
|2006/06||0x0019024B||00 00 00 14||00 00 00 0B
|2006/06||0x0019024B||00 00 00 14||00 00 00 0B
|align=left|'''killmequick''' bound to Dev Mode
|align=left|"killmequick" bound to Dev Mode
|}
|}
|}
|}


=Known Issues=
The [[/changelog|changelog]] lists all above changes, further experimental ones, and also records which functions and variables were replaced in order to add the new ones.
*While playing in Windowed mode, the game and computer cursor are not synced, so one can click outside the game window and disrupt the game.  Workaround:  set the game resolution to the display resolution (or as close as possible) to minimize the disruption.
*In Dev Mode, the numpad number keys 0-9 are not accessible. Thus the default NumPad keys to move the camera will not work.  Workaround: in the key_config.txt file, bind other keys to the camera commands.
*In Dev Mode, when entering commands in the console (accessed with the tilde ~ key), the SHIFT key will not work with the letters a-z, therefore commands requiring uppercase letters cannot be entered.  No known workaround while using the console, but, the commands that have uppercase letters can be entered in the bsl (script)
 


=Download=
[[Category:Patches]]
:http://edt.oni2.net/files/Oni.zip -- Updated on Oct 9, 2008, with all above changes made (if stable).