Jump to content

Developer Mode: Difference between revisions

updating for Mac Intel build and beginning a rewrite, to be finished tomorrow
(→‎Console input: just a tip from having had to do this on a PC recently)
(updating for Mac Intel build and beginning a rewrite, to be finished tomorrow)
Line 1: Line 1:
:''"thedayismine", "Dev Mode" and "DevMode" all redirect here. See also [[Daodan DLL]], [[Oni engine patches (Win)]], [[AE:OMNI|Oni engine patches (Mac)]], and [[History_of_Oni_modding/The_tale_of_Dev_Mode|The Tale of Dev Mode]].''
{{update}}
{|style="float:right"
{|style="float:right"
|+Label on a crate in<br>Syndicate Warehouse<br>(an [[Easter eggs|Easter egg]])
|+Label on a crate in<br>Syndicate Warehouse<br>(an [[Easter eggs|Easter egg]])
Line 6: Line 4:
|http://geyser.oni2.net/Developer_Mode/TheDayIsMine0.png
|http://geyser.oni2.net/Developer_Mode/TheDayIsMine0.png
|}
|}
Developer Mode is a bundle of features (a console, camera controls, and some debugging features) that was available via the '''thedayismine''' cheat code. Until 2006, it was believed that Developer Mode had been cut from retail versions of Oni; it had only been observed to work in the Mac beta 4 that was leaked around the time of Oni's beta testing. However, the this mode is actually present in ''all'' available versions of Oni (except PS2). It just needs to be unlocked.
Developer Mode is a bundle of features created by [[Bungie West]] to help them develop Oni -- a console, camera controls, and various debugging features -- that is available via the '''thedayismine''' cheat code. It was long believed that Developer Mode had been cut from retail versions of Oni; it had only been observed to work in the [[Mac beta]] that was leaked around the time of Oni's beta testing. However, the this mode is actually present in ''all'' available versions of Oni (except PS2). It just needs to be unlocked, as the community learned [[History_of_Oni_modding/The_tale_of_Dev_Mode|back in 2006]].


Below you will find download links, unlocking instructions, and finally an overview of the Developer Mode's features.
Below you will find download links, unlocking instructions, and finally an overview of the Developer Mode's features.
==Getting it to work==
==Getting it to work==
===Download it...===
===Download it...===
In Windows, you need to install the [[Daodan DLL]] to unlock Developer Mode. On the Mac, using the community-patched game application serves the same purpose; it can be found [[AE:OMNI|HERE]].
In Windows, you can install the [[Daodan DLL]] to unlock Developer Mode. On the Mac, the Intel build has Dev Mode unlocked; it can be found [[AE:FERAL|HERE]].
 
{{Divhide|...or do it yourself}}
{{Divhide|...or do it yourself}}
===...or do it yourself===
===...or do it yourself===
Line 17: Line 17:


First, get a good hex editor. Ideally, it should allow you to search for sequences containing joker characters. One such editor for PC is [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]. Dunno for Mac.
First, get a good hex editor. Ideally, it should allow you to search for sequences containing joker characters. One such editor for PC is [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]. Dunno for Mac.
====Cheat code lookup tables====
====Cheat code lookup tables====
{|style="float:right"
{|style="float:right"
Line 125: Line 126:
Developer mode will now be enabled/disabled every time you type '''killmequick''' at the pause screen : you'll get "Ultra Mode Enabled" and "Ultra Mode Disabled" as confirmation messages.
Developer mode will now be enabled/disabled every time you type '''killmequick''' at the pause screen : you'll get "Ultra Mode Enabled" and "Ultra Mode Disabled" as confirmation messages.
{{Divhide|end}}
{{Divhide|end}}
----


==Using it==
==Using it==
===First check===
===First check===
Cheats are normally unlocked when you finish the full version of the game.
Cheats are normally unlocked when you finish the full version of the game. For unlocking cheats "manually" (especially necessary with the demos), see [[Cheats|HERE]]
For unlocking cheats "manually" (especially necessary with the demos), see [[Cheats|HERE]]


Let's say cheats are enabled and the developer mode has been made available ''via'' the '''thedayismine''' cheatcode (or '''killmequick''' or '''x''' or whatever).
Let's say cheats are enabled and Developer Mode has been made available ''via'' the '''thedayismine''' cheatcode (or simply '''x''' with Daodan DLL installed).


Just type the developer mode cheat and watch for the confirmation message.
Just type the Developer Mode cheat and watch for the confirmation message. However, you may not notice anything special when you get back to the game (although there should be occasional console messages appearing at the bottom-left).  
However, it is likely that you won't notice anything special when you get back to the game.
Below are a few quick ways to test the developer mode's functionality.
====Hotkeys====
The quickest way to tell whether it works at all, right after you get the confirmation message, is to exit the pausescreen; to press '''End'''. That should teleport you to where the camera is (usually back and up, possibly through walls and ceilings).


'''End''' is one of the many hotkeys available in Developer Mode. You can also try '''Enter'''. A full list is provided below.
The quickest way to tell whether Dev Mode definitely works, right after you get the confirmation message, is to exit the Diary screen and to press '''End'''. That should teleport you to where the camera is (usually back and up, possibly through walls and ceilings).


Here's another quick test, meant to see if the Control and Alt buttons work fine (on Mac, they should be replaced with "Apple" and "Option", respectively).
Here's another quick test, meant to see if the Control and Alt keys work fine (on Mac, use the Option key instead of Alt): Ctrl+Shift+U and Ctrl+Alt+U should both perform the "unstick" action; Konoko will shift forward by a small amount.
Ctrl+Shift+U and Ctrl+Alt+U should both perform the "unstick" action : the player makes a small no-clipping step forward (overriding collision).


====Console output====
===Console output===
In developer mode, Oni prints debug messages about ingame events along the bottom line of the screen. Past messages scroll up across the screen and fade. In some situations, messages don't fade (e.g. if character debugging is enabled).
In Developer Mode, Oni prints debug messages about in-game events along the bottom-left of the screen. Past messages scroll up across the screen and fade. In some situations, messages don't fade (e.g. if character debugging is enabled or you are currently using the console line).


The easiest way to check whether that output works at all is to press '''F8''' : the character class (skin) change is acknowledged with a console message.
The easiest way to check whether that output works at all is to press '''F8''': the character class change is acknowledged with a console message.


You can also run around one of the original levels with developer mode on : you're guaranteed to see debug messages dumped to the console output.
If you don't see anything, that means console output is unfortunately disabled in your version of Oni. If you're on PC retail, you may have applied [[Troubleshooting/Blam|Ian's patch]] (aka XP patch), which disables console output. On PC demo, both console output and console input are invisible (i.e. you can enter script commands, but you're "blindfolded").


If you don't see anything, that means console output is unfortunately disabled in your version of Oni.
===Console input===
:If you're on PC retail, you may have applied [[Troubleshooting/Blam|Ian's patch]] (aka XP patch), which disables console output.
By default, Oni auto-binds the "console" toggle to the key which on U.S. keyboards has a grave accent, <span style="font-size:200%; top:0.3em; position:relative">`</span>, in the lowercase position and a tilde, <span style="font-size:175%">~</span>, in the uppercase position. It is usually called the "tilde key" by users, and perhaps even elsewhere on this wiki; however, you would have to hold Shift to type a tilde, and the console is activated by just pressing the key without Shift, thus it is actually the "grave accent key" which activates the console. On non-U.S. keyboards, that key may not be recognized. Just add a line like "bind leftalt to console" to '''key_config.txt''' in your Oni folder and you'll be able to open the console with that key. In some cases, this bound key will not ''close'' the console; however, pressing the grave accent key, oddly enough, may work.
:On PC demo, both console output and console input are invisible (i.e. you can enter script commands, but you're "blindfolded"). No can do.
:Mac, console input is visible, output is invisible


====Console input====
===Usage===
By default, Oni auto-binds the "console" event to the "tilde" key ("~", usually located below Escape). On non-US keyboards, that key may not be recognized. Just add the line "bind leftalt to console" (or "bind leftoption to console" on Macs) to '''key_config.txt''' in your Oni folder and you'll be able to open the console with that key. You may have to then press "~" to close the console.
 
===Features===
====Hotkeys====
====Hotkeys====
 
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
{| border="1" cellpadding="1" cellspacing="0" style="background:#ffffff; white-space:nowrap"
!Hotkey (can use Alt for Ctrl)
|-style="background:#ffffff"
!Hotkey
!Description
!Description
!PC
!Windows
!Mac Retail/Demo
!Mac
!Mac OS X
|-
|-
|Fkey2
|Cntl+Shift+o
|Cutscene 1
|Occl Makes console screens disappear
|<center>*</center>
|<center>{{ckblue}}</center>
|  
|<center>?</center>
|
|-
|Cntl+Shift+i
|Invis
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+y
|Displays FPS
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Cntl+Shift+t
|Char Collision
|<center>?</center>
|<center>?</center>
|-
|-
|Fkey3
|Cntl+Shift+r
|Cutscene 2
|Obj Collision
|<center>*</center>
|<center>?</center>
|  
|<center>?</center>
|
|-
|-
|Fkey6
|Cntl+Shift+f
|Kill All AI
|Fast Mode (runs Oni at up to 24x)
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|-
|Ctrl+Fkey7
|Cntl+Shift+g
|Play dead
|Slow motion
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|-
|Fkey7, Shift+Fkey7
|Cntl+Shift+x
|Cycle weapons (holster to get second weapon)
|Secret X / (Mac only) Show trigger volumes
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Fkey8, Shift+Fkey8
|Cntl+Shift+y
|Cycle characters
|Secret Y
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Fkey9
|Cntl+Shift+z
|Start recording
|Secret Z
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Fkey10
|Cntl+Shift+Ins
|Stop recording
|Add Flag
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Fkey11
|Cntl+Shift+Del
|Playback recording
|Delete Flag
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|-
|` (tilde)
|Cntl+Shift+u
|Displays console
|Unstick player
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|
|-
|-
|Cntl+Shift+b
|Cntl+Shift+n
|Shows current opponent's logic
|Camera Record
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Cntl+Shift+s
|Cntl+Shift+m
|furnitures' textures (turns red)
|Camera Stop
|<center>*</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|-
|-
|Cntl+Shift+f
|Cntl+Shift+,
|Fast Mode
|Camera Playback
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Cntl+Shift+g
|?
|Slow motion
|Place Quad
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|Cntl+Shift+y
|?
|Displays FPS
|Place Quad Mode
|<center>*</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|-
|-
|Cntl+Shift+o
|Ctrl+Shift+\
|Makes console screens disappear
|Profile Toggle
|<center>*</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
Line 270: Line 254:
|Cntl+Shift+l
|Cntl+Shift+l
|Dumps a screenshot every frame
|Dumps a screenshot every frame
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|Ctrl+Shift+1
|Test One
|<center>?</center>
|<center>?</center>
|-
|Ctrl+Shift+2
|Test Two
|<center>?</center>
|<center>?</center>
|-
|Ctrl+Shift+3
|Test Three
|<center>?</center>
|<center>?</center>
|-
|Ctrl+Shift+4
|Test Four
|<center>?</center>
|<center>?</center>
|-
|Return/Enter
|Camera Control 3 modes <br>Normal, Detached 1-mouse controls aim<br>Detached 2-mouse controls camera<br>(When activated the following applies)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|/
|Single Step
|<center>?</center>
|<center>?</center>
|-
|-
|Cntl+Shift+u
|Cntl+Shift+Home
|Unstick player
|Toggle active camera; Freeze raycasting
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|-
|Cntl+Shift+HOME
|. (period)
|Freeze raycasting
|Single Step Mode
|<center>*</center>
|<center>?</center>
|<center>*</center>
|<center>?</center>
|<center>*</center>
|-
|-
|END
|End
|Warp to camera
|Warp to camera
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|Cntl+Shift+k
|Kill Particles
|<center>?</center>
|<center>?</center>
|-
|Backspace
|Kill Particles
|<center>?</center>
|<center>?</center>
|-
|7
|Explode One
|<center>?</center>
|<center>?</center>
|-
|8
|Explode Two
|<center>?</center>
|<center>?</center>
|-
|9
|Explode Three
|<center>?</center>
|<center>?</center>
|-
|0
|Explode Four
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+j
|Reset Particles
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+w
|Drop Flag and Add Waypoint
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+b
|Shows current opponent's logic
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|]
|Freeze
|<center>?</center>
|<center>?</center>
|-
|[
|Frame Advance
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+s
|furnitures' textures (turns red)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|-
|ENTER
|F8, Shift+F8
|Camera Control 3 modes <br>Normal, Detached 1-mouse controls aim<br>Detached 2-mouse controls camera<br>(When activated the following applies)
|Cycle characters
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|-
|Cntl+Shift+p
|Perf Particle
|<center>?</center>
|<center>?</center>
|-
|Cntl+Shift+;
|Perf Particle Lock
|<center>?</center>
|<center>?</center>
|-
|=
|Screenshot
|<center>?</center>
|<center>?</center>
|-
|F2
|Cutscene 1
|<center>{{ckblue}}</center>
|
|-
|F3
|Cutscene 2
|<center>{{ckblue}}</center>
|
|-
|F6
|Kill All AI
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Ctrl+F7
|Play dead
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Fkey7, Shift+Fkey7
|Cycle weapons (holster to get second weapon)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Fkey9
|Start recording
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Fkey10
|Stop recording
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Fkey11
|Playback recording
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|` (grave accent)
|Displays console
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|-
|<ul><li>NumPad1</li></ul>
|<ul><li>NumPad1</li></ul>
|Move camera left
|Move camera left
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>see note [[Customizing/Binding#Developer_Mode|HERE]]</center>
|<center>see note [[Customizing/Binding#Developer_Mode|HERE]]</center>
|-
|-
|<ul><li>NumPad3</li></ul>
|<ul><li>NumPad3</li></ul>
|Move camera right
|Move camera right
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad4</li></ul>
|<ul><li>NumPad4</li></ul>
|Pan camera right
|Pan camera right
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad5</li></ul>
|<ul><li>NumPad5</li></ul>
|Move camera backward
|Move camera backward
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad6</li></ul>
|<ul><li>NumPad6</li></ul>
|Pan camera left
|Pan camera left
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad8</li></ul>
|<ul><li>NumPad8</li></ul>
|Move camera forward
|Move camera forward
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad-</li></ul>
|<ul><li>NumPad-</li></ul>
|Move camera up
|Move camera up
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>NumPad+</li></ul>
|<ul><li>NumPad+</li></ul>
|Move camera down
|Move camera down
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>Up Arrow</li></ul>
|<ul><li>Up Arrow</li></ul>
|Pan camera up
|Pan camera up
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
|-
|<ul><li>Down Arrow</li></ul>
|<ul><li>Down Arrow</li></ul>
|Pan camera down
|Pan camera down
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>*</center>
|<center>{{ckblue}}</center>
|<center>"</center>
|-
 
|}
|}
* Feature available (There may be more hotkeys, please add)


====Runtime scripting====
====Runtime scripting====