| Address | Description | Type | Size |
| $029663 | Routine that gets sprite clipping value for quake sprites (i.e. bounce sprites and Yoshi's stomp). Takes the place of "sprite clipping B" from the standard routines. | Sprite subroutine (JSR) | 51 |
| $029696 | Get the cape hitbox for clipping B.
$02969B [$02]: Hitbox horizontal displacement (low byte).
$0296A2 [$00]: Hitbox horizontal displacement (high byte).
$0296A5 [$14]: Hitbox width.
$0296B4 [$10]: Hitbox height.
Note that there is no vertical displacement for the cape hitbox. | Subroutine (JSR) | 34 |
| $02A519 | "Get extended sprite clipping routine", for extended sprites $02-$0D (for Mario and Yoshi's fireballs, see [url=https://smwc.me/m/smw/rom/02A547]$02A547[/url]). It stores the clipping X displacement low byte in $04, X displacement high byte in $0A, Y displacement low byte in $05, Y displacement high byte in $0B, width in $06, height in $07 (so it's equivalent to the "Get sprite clipping A" routine).
Inputs:
- X: extended sprite slot
- Data Bank: $02
Y is modified by the routine, so it should be preserved before calling it if needed. | Sprite subroutine (JSR) | 46 |
| $02A547 | "Get Fireball clipping" subroutine. Valid for Yoshi's and Mario's fireballs, Stores the clipping X displacement low byte to $00, the clipping X displacement high byte to $08, the clipping width (#$0C) to $02, the clipping Y displacement low byte to $01, the clipping Y displacement high byte to $09, and the clipping height (#$13) to $03 (so it's equivalent to the "Get sprite clipping B" routine).
Input:
- Y: which extended sprite slot to get clipping of ($00-07 for Yoshi's fireballs, and $08-09 for Mario's) | Sprite subroutine (JSR) | 39 |
| $03B664 | "Get player clipping B" subroutine. Gets and stores information in scratch RAM about the position and size of the player's sprite interaction hitbox; see details for a list.
Generally for use in conjunction with [url=https://smwc.me/m/smw/rom/03B69F]$03B69F[/url] and [url=https://smwc.me/m/smw/rom/03B72B]$03B72B[/url] to check if a sprite is touching Mario.
Notable tweaks:
- [b]$03B673[/b]: The width of Mario hitbox with sprites in pixels (default: 0C).
- [b]$03B67C[/b]: Change to [A9 00] to make Mario always have a 16x16 interaction field (like Small Mario), or to [A9 01] to always have a 16x32 interaction field (like Big Mario). Recommended to combine with the similar tweaks at [url=https://smwc.me/m/smw/rom/00EB79]$00EB79[/url] and [url=https://smwc.me/m/smw/rom/01B4C0]$01B4C0[/url].
| Subroutine (JSL) | 59 |
| $03B69F | "Get sprite clipping A" subroutine. Gets and stores information in scratch RAM about the position and size of the sprite interaction hitbox for the sprite slot in X; see details for a list.
Generally for use in conjunction with [url=https://smwc.me/m/smw/rom/03B72B]$03B72B[/url] and either [url=https://smwc.me/m/smw/rom/03B664]$03B664[/url] or [url=https://smwc.me/m/smw/rom/03B6E5]$03B6E5[/url] to check if the sprite is interacting with either Mario or another sprite. | Sprite subroutine (JSL) | 70 |
| $03B6E5 | "Get sprite clipping B" subroutine. Gets and stores information in scratch RAM about the position and size of the sprite interaction hitbox for the sprite slot in X; see details for a list.
Generally for use in conjunction with [url=https://smwc.me/m/smw/rom/03B69F]$03B69F[/url] and [url=https://smwc.me/m/smw/rom/03B72B]$03B72B[/url] to check if two sprites are touching. | Sprite subroutine (JSL) | 70 |