Oni engine patches (Mac PPC): Difference between revisions

From OniGalore
Jump to navigation Jump to search
(doing a write-up to provide some history)
m (using hatnote template)
 
(35 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__TOC__
{{Hatnote|For the history of the Mac builds of Oni, see [[History of Mac Oni|here]]. For information on the patches to Windows Oni and other Mac versions of Oni, see the [[:Category:Patches|Patches category]].}}
=History=
{{fmbox
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.
  | 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.
  }}


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


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.
==List of patches==
 
A brief timeline of the upgrades:
 
=List of patches=
A brief timeline of the upgrades so far:
{|
{|
|
|
Line 17: Line 19:
{{th}}
{{th}}
!Date!!Offset!!Old hex!!New hex!!Description
!Date!!Offset!!Old hex!!New hex!!Description
|-align=center
|2009/07||0x00192643<br>0x00192647||0x06<br>0x06||0x07<br>0x0B
|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 still crashes
|-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
|}
|}
|}
|}
;NOTE
:Increasing the buffer size to accomodate 1024x1024 textures doesn't work because of a limitation elsewhere in the engine.
:Therefore, the patch will only allow for 512x512 until further notice. BTW, 512x512 is ''plenty'' for virtually any purpose.


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.


=Download=
[[Category:Patches]]
:http://edt.oni2.net/files/Oni.zip -- the latest version, with all above changes made (if stable)

Latest revision as of 19:45, 2 July 2022

For the history of the Mac builds of Oni, see here. For information on the patches to Windows Oni and other Mac versions of Oni, see the Patches category.

Download

http://edt.oni2.net/files/Oni.zip -- Updated on July 2009, with all patches listed below except the bgra32 patch.

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

A brief timeline of the upgrades:

Date Offset Old hex New hex Description
2009/07 0x00192643
0x00192647
0x06
0x06
0x07
0x0B
RGBA8888 texture support (On hold, problem with color shifts and transparency)
2009/05 0x000A42CC B13C0054
B13C0052
913C00FC
B13C004C
A00B00C2
913C0008
913C0008
913C0008
91 3C0008
913C0008
Fix Mercury Bow Exploit
2009/05 0x0001650C
0x00016510
0x00016514
0x00016568
0x0001656C
0x00016574
0x0001655C
D141005C
D1010060
D121 0064
C0010060
C1A1005C
C0210064
ED6B
C0010074
C1A10078
C021007C
7F86E378
7F86E378
7F86E378
EC2B
Particle dodging
2009/05 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.

Code for Dev Mode is now 'x', not "killmequick".
Changed wording of "Ultra Mode" to "Developer Mode".

2008/12 Restored some Debug commands

Replaced chr_disable_visactive with ai2_showfights
Replaced chr_lod with ai2_showcombatranges
Replaced gs_show_corpses with ai2_showgrids
Replaced single_step with ai2_showlocalmelee
Replaced draw_every_frame_multiple with ai2_showpaths
Replaced gs_screen_shot_reduce with ai2_showprojectiles

2008/11 0x0019025C 00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 17 22 58
00 17 22 44
00 17 22 39
00 00 00 0B
Bound "thedayismine" to Dev Mode
2008/11 0x0019024B 00 00 00 08 00 00 00 14 Restored "killmequick" to Ultra Mode
2008/11 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.

2008/10 0x1220AF
0x1220B3
0x1151C3
06
06
10
46
46
40
1024x1024 texture support added
2008/06 0x0005E4C2 00 7F Flailing timer increased (for jetpack hack)
2008/05 0x000E2D19 7A 9A Non-"_Final" levels are now valid
2007/07 0x00096DCB
0x00096DE3
04
04
20
20
Pathfinding grid cache size increased x8
2007/05
2007/06
2007/07
0x00189FDC 90 61 00 18
90 81 00 1C
90 A1 00 20
90 C1 00 24
90 E1 00 28
91 01 00 2C
91 21 00 30
91 41 00 34
4E 80 00 20
7C EA 3B 78
7C C9 33 78
7C A8 2B 78
7C 87 23 78
7C 66 1B 78
38 60 00 00
38 83 FF FF
38 A3 00 01
4B F2 F6 F8
Console output display fixed
2007/01 0x001B6050 0D 00 00 0A 0D 00 00 0D Return/Enter key fixed
2006/08 0x00117B36 1F 03 1F 02 GL extension list crash fixed
2006/06 0x0019024B 00 00 00 14 00 00 00 0B "killmequick" bound to Dev Mode

The changelog lists all above changes, further experimental ones, and also records which functions and variables were replaced in order to add the new ones.