AddressDescriptionTypeSize
$029663Routine 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
$029696Get 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