Difference between revisions of "Ink"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(→‎Mechanics: adding most details on ink mechanics that I've discovered over the past week. There's still a little extra I need to add (mainly ink regen downtime and inkless regen rate), but I will sleep for now)
(→‎Mechanics: link to frame page (not yet made))
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:
==Mechanics==
==Mechanics==
* When the brush is opened, Ammy's Current Ink (main.dll+B205D8) is copied to an address henceforth called "Revert Ink" (main.dll+8928A8), and the same value minus 15360 is copied to another address called "Target Ink" (main.dll+8928A4).  
* When the brush is opened, Ammy's Current Ink (main.dll+B205D8) is copied to an address henceforth called "Revert Ink" (main.dll+8928A8), and the same value minus 15360 is copied to another address called "Target Ink" (main.dll+8928A4).  
* As you draw on the canvas, Current Ink steadily decreases at a rate of 64 per frame of brush movement (including for the first frame the brush is pressed, e.g. for a dot). This gives Ammy a maximum of 240 [[Frames||frames], or 8 seconds, of drawing time per canvas.
* As you draw on the canvas, Current Ink steadily decreases at a rate of 64 per [[Frame|frame]] of brush movement (including for the first frame the brush is pressed, e.g. for a dot). This gives Ammy a maximum of 240 frames, or 8 seconds, of drawing time per canvas.
* The difference between Current Ink and Target Ink represents the amount of ink left in the ink pot at the top-right of the canvas. If you continue drawing until Current Ink falls below Target Ink, the ink pot becomes empty and the Canvas is forced closed.
* The difference between Current Ink and Target Ink represents the amount of ink left in the ink pot at the top-right of the canvas. If you continue drawing until Current Ink falls below Target Ink, the ink pot becomes empty and the Canvas is forced closed.
* The Canvas will also be forced closed if Ammy tries to draw more than 30 separate brush strokes, regardless of Current Ink and Target Ink. The number of brushstrokes on the current canvas is stored at address main.dll+888C58.  
* The Canvas will also be forced closed if Ammy tries to draw more than 30 separate brush strokes, regardless of Current Ink and Target Ink. The number of brushstrokes on the current canvas is stored at address main.dll+888C58.  
Line 15: Line 15:
** This applies even while drawing on the canvas. If you allow Ammy's Current Ink to fall below 15360 via a cursed zone or Cursed Kusa Village, then open the brush, Target Ink will be set to a negative value, but as you attempt to draw, Current Ink will reach 0 and stay there. This means that Current Ink is never less than or equal to Target Ink, so Ammy can draw forever. If you leave the cursed zone before opening brush, while still retaining the negative Target Ink, you can crash the game by drawing on the canvas more than intended. Demonstration: https://youtu.be/q1NSMKG4WX0
** This applies even while drawing on the canvas. If you allow Ammy's Current Ink to fall below 15360 via a cursed zone or Cursed Kusa Village, then open the brush, Target Ink will be set to a negative value, but as you attempt to draw, Current Ink will reach 0 and stay there. This means that Current Ink is never less than or equal to Target Ink, so Ammy can draw forever. If you leave the cursed zone before opening brush, while still retaining the negative Target Ink, you can crash the game by drawing on the canvas more than intended. Demonstration: https://youtu.be/q1NSMKG4WX0
* If, upon closing the canvas, Ammy's Current Ink is set to a value less than 15360 (less than 1 full ink pot), she becomes Inkless. This is when she loses her markings, instrument, and the ability to use the brush.
* If, upon closing the canvas, Ammy's Current Ink is set to a value less than 15360 (less than 1 full ink pot), she becomes Inkless. This is when she loses her markings, instrument, and the ability to use the brush.
* Normally, Ammy's ink increases at a rate of 70 per frame.
* Normally, Ammy's ink increases at a rate of 70 per frame, up to the Max Ink value.
** When Ammy is inkless, her ink recharges at a rate of 210 per frame (3 times as fast). This rate continues until until she reaches 46080 ink, at which point she regains her markings, Divine Instrument, and the ability to use the brush. After this, her ink continues to regenerate at 70 ink per frame.
** When ink has the Golden Ink Pot equipped, her ink regen rate is multiplied by 3 (tripled). This includes when she is inkless.

Latest revision as of 16:27, 25 November 2021

Note: This page describes a unit used in Okami. To learn more about the values representing quantities of these units, see Reverse Engineering.

Explanation

Ammy's level of ink in-game is represented using a signed int (4 bytes). Every 15360 units of ink is equivalent to 1 ink pot in the interface. By default, she has a maximum of 46080 ink (3 ink pots), which can be upgraded using praise.

Mechanics

  • When the brush is opened, Ammy's Current Ink (main.dll+B205D8) is copied to an address henceforth called "Revert Ink" (main.dll+8928A8), and the same value minus 15360 is copied to another address called "Target Ink" (main.dll+8928A4).
  • As you draw on the canvas, Current Ink steadily decreases at a rate of 64 per frame of brush movement (including for the first frame the brush is pressed, e.g. for a dot). This gives Ammy a maximum of 240 frames, or 8 seconds, of drawing time per canvas.
  • The difference between Current Ink and Target Ink represents the amount of ink left in the ink pot at the top-right of the canvas. If you continue drawing until Current Ink falls below Target Ink, the ink pot becomes empty and the Canvas is forced closed.
  • The Canvas will also be forced closed if Ammy tries to draw more than 30 separate brush strokes, regardless of Current Ink and Target Ink. The number of brushstrokes on the current canvas is stored at address main.dll+888C58.
  • When the canvas is closed (whether by manually releasing the Brush button or by it being forced closed), the game evaluates what was drawn on the canvas.
    • If no brush techniques are recognized, Revert Ink is copied to Current Ink. This means that Ammy doesn't lose any actual ink regardless of how much she draws on the canvas.
    • If a brush technique which consumes 1 ink pot is recognized, Target Ink is copied to Current Ink, causing Ammy to lose 1 Ink Pot.
    • If a multi-pot technique is used (e.g. Fireburst, Whirlwind, Icestorm, etc.), the extra ink consumed (in multiplies of 15360) is subtracted from Target Ink, and then Target Ink is copied to Current Ink.
  • If Ammy's Current Ink would ever fall below 0, it's set to 0 instead.
    • This applies even while drawing on the canvas. If you allow Ammy's Current Ink to fall below 15360 via a cursed zone or Cursed Kusa Village, then open the brush, Target Ink will be set to a negative value, but as you attempt to draw, Current Ink will reach 0 and stay there. This means that Current Ink is never less than or equal to Target Ink, so Ammy can draw forever. If you leave the cursed zone before opening brush, while still retaining the negative Target Ink, you can crash the game by drawing on the canvas more than intended. Demonstration: https://youtu.be/q1NSMKG4WX0
  • If, upon closing the canvas, Ammy's Current Ink is set to a value less than 15360 (less than 1 full ink pot), she becomes Inkless. This is when she loses her markings, instrument, and the ability to use the brush.
  • Normally, Ammy's ink increases at a rate of 70 per frame, up to the Max Ink value.
    • When Ammy is inkless, her ink recharges at a rate of 210 per frame (3 times as fast). This rate continues until until she reaches 46080 ink, at which point she regains her markings, Divine Instrument, and the ability to use the brush. After this, her ink continues to regenerate at 70 ink per frame.
    • When ink has the Golden Ink Pot equipped, her ink regen rate is multiplied by 3 (tripled). This includes when she is inkless.