Jump to content

Developer Mode: Difference between revisions

differentiated the hotkeys in the table that were enabled via patches after Dev Mode was unlocked; added info on profiling feature; answered question about Secret X/Y binding conflict
m (wikilinked Data Comlink)
(differentiated the hotkeys in the table that were enabled via patches after Dev Mode was unlocked; added info on profiling feature; answered question about Secret X/Y binding conflict)
Line 171: Line 171:
The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed). In the "German QWERTZ" and "French AZERTY" columns, the hotkeys differing from U.S. QWERTY are shown. If you have another type of keyboard that you would like to have incorporated into the table, feel free to add a column (or ask for it on the talk page).
The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed). In the "German QWERTZ" and "French AZERTY" columns, the hotkeys differing from U.S. QWERTY are shown. If you have another type of keyboard that you would like to have incorporated into the table, feel free to add a column (or ask for it on the talk page).


If a hotkey's functionality has been restored in Windows using the Daodan DLL, it will be checked off here. Stuff that doesn't work has been grouped at the end of the table.
If a hotkey's functionality is not present in vanilla Oni but has been restored in Windows using the Daodan DLL or on the Mac via the Feral Intel build, it will be signified with a green checkmark. Stuff that doesn't work has been grouped at the end of the table.


{|class="wikitable" style="margin-left:auto; margin-right:auto;"
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
Line 191: Line 191:
|Hide non-(visually-)occluding quads '''(1)'''
|Hide non-(visually-)occluding quads '''(1)'''
|
|
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|colspan=3|Ctrl+Shift+S
|colspan=3|Ctrl+Shift+S
|Hide non-sound-occluding quads '''(2)'''
|Hide non-sound-occluding quads '''(2)'''
|
|
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|colspan=3|Ctrl+Shift+<tt>I</tt>
|colspan=3|Ctrl+Shift+<tt>I</tt>
|Draw invisible quads
|Draw invisible quads
|
|
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|Ctrl+Shift+Y
|Ctrl+Shift+Y
Line 213: Line 213:
|Draw only character-colliding geometry
|Draw only character-colliding geometry
|
|
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|colspan=3|Ctrl+Shift+R
|colspan=3|Ctrl+Shift+R
|Draw only object-colliding geometry
|Draw only object-colliding geometry
|
|
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|colspan=3|Ctrl+Shift+F
|colspan=3|Ctrl+Shift+F
Line 231: Line 231:
|-
|-
|colspan=3|Ctrl+Shift+X
|colspan=3|Ctrl+Shift+X
|Toggle show trigger volumes (formerly "Secret X")
|Toggle show trigger volumes
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|align=center|{{ckblue}}
|align=center|{{ckgreen}}
|-
|-
|colspan=3|Ctrl+Shift+Ins
|colspan=3|Ctrl+Shift+Ins
Line 253: Line 253:
|bgcolor=silver|Ctrl+Shift+#
|bgcolor=silver|Ctrl+Shift+#
|bgcolor=silver|Ctrl+Shift+*
|bgcolor=silver|Ctrl+Shift+*
|Displays "Profile on"/"Profile off" (no other known effect)
|Engages profiler if present '''(5)'''
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|
|
Line 342: Line 342:
|-
|-
|colspan=3|F9
|colspan=3|F9
|Start recording
|Start film recording
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|-
|-
|colspan=3|F10
|colspan=3|F10
|Stop recording
|Stop film recording
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|-
|-
|colspan=3|F11
|colspan=3|F11
|Playback recording
|Play back film recording
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|align=center|{{ckblue}}
Line 371: Line 371:
|bgcolor=silver|Ctrl+Shift+Z
|bgcolor=silver|Ctrl+Shift+Z
|Ctrl+Shift+Y
|Ctrl+Shift+Y
|Secret Y '''(5)'''
|Secret Y '''(7)'''
|
|
|
|
Line 378: Line 378:
|bgcolor=silver|Ctrl+Shift+Y
|bgcolor=silver|Ctrl+Shift+Y
|Ctrl+Shift+Z
|Ctrl+Shift+Z
|Secret Z '''(5)'''
|Secret Z '''(7)'''
|
|
|
|
Line 499: Line 499:
'''(3)''' On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations.
'''(3)''' On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations.


'''(4)''' Please see talk page section "Insert key on Macs".
'''(4)''' Please see {{SectionLink|Talk:Developer Mode|Insert key on Macs}}.


'''(5)''' Wouldn't Ctrl+Y and Ctrl+Z conflict with "Performance display"?
'''(5)''' The profiler is an external library that may be placed next to Oni.exe: vtuneapi.dll in Windows, Metrowerks' Profiler Carbon.lib on Classic Macs.


'''(6)''' "Animation freezing" works on the main character and means two things:
'''(6)''' "Animation freezing" operates upon the main character and means two things:
:a) The character's position and pose remain exactly the same as they were at the time of freezing, along with collision shapes (spheres and body parts) and other stuff.
:a) The character's position and pose remain exactly the same as they were at the time of freezing, along with collision shapes (spheres and body parts) and other stuff.
:b) The actual character, unless "pinned" with <tt>[[chr_pin_character]]=1</tt>, will keep moving with the same velocity as at the time of freezing.
:b) The actual character, unless "pinned" with <tt>[[chr_pin_character]]=1</tt>, will keep moving with the same velocity as at the time of freezing.
:*For regular (grounded) animations, the vertical velocity is zero and the horizontal velocity is determined by the animation frame that was playing at the time of freezing.
:*For regular (grounded) animations, the vertical velocity is zero and the horizontal velocity is determined by the animation frame that was playing at the time of freezing.
:*If airborne (jumping or falling) the current airborne velocity (both vertical and horizontal) at the time of freezing is maintained.
:*If airborne (jumping or falling), the current airborne velocity (both vertical and horizontal) at the time of freezing is maintained.
:*Wall collision is disabled, as well as gravity acceleration and the "air" timer (so you can't die from falling for too long while frozen).
:*Wall collision is disabled, as well as gravity acceleration and the "in-air" timer (so you can't die from falling for too long while frozen).
:*Floor collision still works, as well as the "off" timer that starts when you step off a ledge, and the downward velocity that is applied then (see [[ONCC]] for details on this downward velocity).
:*Floor collision still works, as well as the "off" timer that starts when you step off a ledge, and the downward velocity that is applied then (see [[ONCC]] for details on this downward velocity).
:If one sets <tt>[[chr_pin_character]]=1</tt>, then animation debugging works exactly as intended: there is no drifting, and one can conveniently advance through the frames of the current animation.
:If one sets <tt>chr_pin_character=1</tt>, then animation debugging works exactly as intended: there is no drifting, and one can conveniently advance through the frames of the current animation.
:If one does not set <tt>[[chr_pin_character]]=1</tt>, then the frame-freezing functionality does not allow one to study animations, and instead provides a powerful (and risky) teleporting gimmick.
:If one does not set <tt>chr_pin_character=1</tt>, then the frame-freezing functionality does not allow one to study animations, and instead provides a powerful (and risky) teleporting gimmick.
 
'''(7)''' The bindings for Secret X/Y conflict with the Ctrl+Shift+Y binding for the performance display, but this doesn't matter because the Secret X/Y/Z keys are either not implemented in Oni or were removed during development.


===Camera controls===
===Camera controls===