Steam API Action Layer Glitch

From Ōkami Speedrun Wiki
Jump to navigation Jump to search


The PC/Steam release of Ōkami HD does not have direct controller support. Instead, its native control scheme is Mouse and Keyboard, with gamepad controls being configured through the Steam Input/Controller API. The in-game implementation of this API suffers from a bug, where the game will not recognize controller inputs for 1 frame when switching Action Layers/gameplay contexts (e.g. normal movement, in brush, fan menu, loading zones).

When using the default/official controller configuration, this makes certain techniques more difficult or impossible while using controller. For example, it is impossible to set up the first-frame jump for Origin Warps using controller on PC. This also interferes with Brush Buffering for Fire Tablet Skip, as each Brush Buffer leaves an effective 1 frame gap in holding jump.

This bug can be worked around by using mixed controller and mouse/keyboard inputs, or by customizing the controller configuration in certain specific ways.

Using Mouse and Keyboard

Playing the entire game on mouse and keyboard is prohibitively difficult, but you can still use mouse and keyboard for critical inputs while playing on controller. 1st frame jumping for Origin Warp can be performed by mashing your mouse/keyboard jump bind, after which you can resume using controller. Fire Tablet Skip requires you to hold a keyboard/mouse jump bind while brush buffering a held jump, with all other inputs working via controller. Kamiki Boulder Skip only requires you to use a mouse/keyboard input for the tackle after Issun's text box, with the remainder of the trick being input via controller. Demon Boost only requires the tackle input to bypass steam API, similarly to Boulder Skip. To use this strategy, simply use the in-game controls menu to bind tackle and jump to keys that are easy for you to press while holding a controller, such as Ctrl or Space. Although the mouse/keyboard keybinds are quicker to set up, reconfiguring the controller can allow for more a more intuitive solution.

Changing the Controller Configuration

A default controller configuration for the PC / Steam version of Okami HD, showing a Nintendo Switch Pro Controller
A default controller configuration for the PC / Steam version of Okami HD, showing a Nintendo Switch Pro Controller

To change the controller configuration settings:

  1. Connect a controller to your PC.
  2. Open Steam (not Ōkami).
  3. Go to the "Library" tab at the top.
  4. Select Okami HD from the left sidebar.
  5. Under the play button, in the menu bar, click "Controller Configuration".

It is recommended that you make some of the changes recommended below, then use the Export Config option to save your controller configuration.

Action Layers

There are 6 real Action Layers (AKA contexts) used by the game. You can create additional ones, but they do not directly interface with the game's engine.

  • Standard Actions — Used during normal overworld gameplay, where you directly control Ammy and move her around.
  • Battle Actions — Used exclusively when Ammy is in the fighting pose and can attack with her Divine Instrument. This includes normal battles (with a barrier, usually activated by Demon Scroll, Devil Gate, or cutscene), boss battles, and Dojo lessons.
  • Celestial Brush... — Used exclusively when in celestial brush mode, where the world is frozen and you can draw to perform brush techniques.
  • Fishing Actions — Used exclusively when in fishing minigames.
  • Menu Actions — Used when in menus, such as the fan menu and settings menu.
  • Event Actions — Used in loading screens, cutscenes, and dialog.

Recommended Changes

The "Legacy Keys" button within the Steam controller configuration menu
The "Legacy Keys" button within the Steam controller configuration menu

Several changes are recommended as workarounds to certain issues caused by the action layer glitch. For the most part, these involve using the "Legacy Keys" menu to bind controller inputs directly to mouse buttons and keyboard keys.

Normally, the "In-Game Action" bindings available in any given Action Layer have no effect in any other layer. This results in a frame where the game has switched contexts, and is no longer recognizing inputs from the previous context, but the Steam API is still sending inputs from the previous context, which then have no effect. It essentially becomes impossible to use most in-game actions for a single frame when transitioning between Action Layers. Using keyboard keys as bindings mitigates this, because the native mouse + keyboard bindings aren't context-sensitive, and so can still take effect during that transition frame. So long as the binding is the same in both Action Layers, this makes for a seamless experience like on console.

Inability to Dialogue Boost

Dialogue Boosting, such as for Kamiki Boulder Skip, involves tackling the first frame when transitioning from the Event Actions layer to the Standard Actions layer. Because of the transition frame, it's impossible to use the Tackle in-game action on that frame, which is also the only valid frame to get a mid-air ground tackle. To work around this, determine the keyboard key or mouse button which is bound to Jump and Tackle in-game. By default, Tackle is bound to Mouse Left Click.

Choose the controller button you wish to bind to Tackle in the Steam Controller Configuration Menu. Using the Legacy Keys menu, in both the Event Actions and Standard Actions layers, bind it to Mouse Left Click (or whatever the in-game m+kb binding is). You should now be able to tackle on the first frame after closing a dialogue box.

The Steam controller configuration options for emulating a directional pad with an analogue stick.
The Steam controller configuration options for emulating a directional pad with an analogue stick.

Note that you will not be able to choose the direction of the tackle. This is because the analogue stick is also affected by the glitch. Unfortunately, there is no in-game binding for analogue sticks, so using the exact same binding is not possible. There is also Movement in-game action binding in the Event Actions layer.

As a workaround, keep the analogue stick bound to Movement on the Standard Actions layer. In the Event Actions layer, set the analogue stick to "Generic Directional Pad". In the "Advanced Settings" at the bottom, ensure that the "Layout" is set to "8 Way (Overlap)". Bind the directions to WADS (or whatever the in-game keyboard bindings are for you). This will allow you to D Boost ground tackle in 8 directions relative to the camera, while still retaining full analogue movement control in normal gameplay. Unfortunately, there's no known way to have full analogue control on the transition frame, but for most applications this workaround is good enough.