AddressDescriptionTypeSize
$018022The subroutine that updates a sprite's X position without gravity. JSRs into $01ABCC, which adds the sprite's index number by 12 (which is the number of existing sprite slots), then JSRs again into $01ABD8 so that it will handle moving the X position of the sprite.Sprite subroutine (JSL)8
$01802ARoutine used to update a sprite's X/Y position, apply gravity, and process object interaction. This is a JSL-wrapper for [url=https://smwc.me/m/smw/rom/019032]$019032[/url], which also calls the position-update routine at [url=https://smwc.me/m/smw/rom/01ABCC]$01ABCC[/url].Sprite subroutine (JSL)8
$019032Standard rused to update a sprite's X/Y position (internally calling [url=https://smwc.me/m/smw/rom/01ABCC]$01ABCC[/url]), apply gravity, and process object interaction. A JSL wrapper for it can be found at [url=https://smwc.me/m/smw/rom/01802A]$01802A[/url]. [ul] -[b]$019042[/b], [b]$019045[/b] [$E8]: Maximum upwards Y speed of sprites in water. -The acceleration rates this routine uses for gravity can be found at [url=https://smwc.me/m/smw/rom/019030]$019030[/url], and the maximum downwards Y speeds at [url=https://smwc.me/m/smw/rom/01902E]$01902E[/url]. [/ul]Subroutine (JSR)87
$01ABCCRoutine used to update a sprite's X and Y position ([url=https://smwc.me/m/smw/ram/7E00E4/]$E4[/url]/[url=https://smwc.me/m/smw/ram/7E14E0/]$14E0[/url]/[url=https://smwc.me/m/smw/ram/7E14F8/]$14F8[/url] and [url=https://smwc.me/m/smw/ram/7E00D8/]$D8[/url]/[url=https://smwc.me/m/smw/ram/7E14D4/]$14D4[/url]/[url=https://smwc.me/m/smw/ram/7E14EC/]$14EC[/url]) by its speed ([url=https://smwc.me/m/smw/ram/7E00AA/]$AA[/url] and [url=https://smwc.me/m/smw/ram/7E00B6/]$B6[/url]). Specifically, this consists of two different callpoints at $01ABCC and $01ABD8 for updating the X and Y position respectively. JSL wrappers for this exist at [url=https://smwc.me/m/smw/rom/018022/]$018022[/url] (updates X position) and [url=https://smwc.me/m/smw/rom/01801A/]$01801A[/url] (updates Y position). Alternatively, you can call [url=https://smwc.me/m/smw/rom/01802A/]$01802A[/url] to update both the X and Y position while additionally applying gravity and processing object interaction. This also records the number of pixels moved in [url=https://smwc.me/m/smw/ram/7E1491]$1491[/url]. The original game uses this mainly to move Mario along with the sprite for platforms.Sprite subroutine (JSR)65
$01B7B3JSL wrapper for the finish OAM write routine at [url=https://smwc.me/m/smw/rom/01B7BB]$01B7BB[/url]. This routine is used to set up the data in [url=https://smwc.me/m/smw/ram/7E0420]$0460[/url] for a defined set of sprite tiles. Arguments:
  • A: Number of tiles to update, minus 1.
  • Y: Tile size. 00 = 8x8, 02 = 16x16, 80+ = manually set via [url=https://smwc.me/m/smw/ram/7E0420]$0460[/url] (i.e. only calculate the X bit).
  • $0300, $0301: Must already be set to the X/Y position for each tile.
  • [url=https://smwc.me/m/smw/ram/7E15EA]$15EA[/url]: OAM index of the first tile to write for. Generally, this does not need to be manually set.
Calling this routine overwrites the entire scratch RAM range at $00-$0B.
Sprite subroutine (JSL)8
$02B51AUpdates a bounce sprite's Y position without gravity (actually just changes the sprite index and JSRs to $02B526).Sprite subroutine (JSR)12
$02B526Updates a bounce sprite's X position without gravity.Sprite subroutine (JSR)46
$02B554The subroutine that updates an extended sprite's X position (without gravity).Sprite subroutine (JSR)12
$02B560The subroutine that updates an extended sprite's Y position (without gravity).Sprite subroutine (JSR)46
$02FF98"Update cluster sprite X position without gravity" subroutine.Sprite subroutine (JSR)11
$03CE5ASubroutine for Lemmy Koopa and Wendy O. Koopa's "falling" phase. Updates Lemmy/Wendy's Y speed and position - Accelerates their falling speed until it reaches approximately #$40. When their Y low position reaches #$85, the routine spawns lava extended sprites, plays the "falling in lava" SFX, sets the phase timer, and sets the current phase to "sinking in lava". The routine then branches to part of the "hit" phase subroutine that sets Lemmy/Wendy's animation frames.Sprite subroutine (JSR)47