a guest Jul 19th, 2016 202 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Basically, Yoshi's tongue cancels out any extra bits for sprites. At $02A95B, you get this code:
  2.     CODE_$02A95B:
  3.     LDA [$CE],Y
  4.     PHA
  5.     AND.b #$F0
  6.     STA $D8,X
  7.     PLA
  8.     AND.b #$0D
  9.     STA.w $14D4,X
  11. It loads the first byte of sprite data - which is in the format %YYYYEEsy - and uses that to store to the Y position. Note that when it stores to the high Y position, however, it includes the extra bits (#$0D instead of the expected #$01). The goal tape code then works with this, storing #$05 to its high Y position and then correcting it later after it stores it to the sprite tables.
  12.     CODE_01C089:
  13.     LDA.w $14D4,X
  14.     STA.w $187B,X
  15.     AND.b #$01
  16.     STA.w $14D4,X
  19. However, if Yoshi is in a higher slot than the goal tape spawns into, then Yoshi's code gets run before the goal tape's INIT; this allows his tongue to correct the sprite's Y position before it can use it on its own.
  20.     CODE_01F509:
  21.     CLC
  22.     ADC $D8,X
  23.     STA.w $D8,Y
  24.     LDA.w $14D4,X
  25.     ADC $01
  26.     STA.w $14D4,Y
  28. So what does this mean? Well, it means you can turn any sprite that uses extra bits and can stick to Yoshi's tongue into its base sprite by item swapping with Yoshi in a higher slot. However, if you happen to be in a vertical level, then things get a bit more interesting; by item swapping a few screens down in a vertical level, you should be able to **SET** the extra bits for the sprite. ...unfortunately, that doesn't mean shit for vanilla SMW though, since the goal tape is the only standard sprite to use those bits and it's never placed in a vertical level. Still cool though.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand