6 users online:  bebn legg, HammerBrother, hoot_64, Humpty Dumpty Magazine, monkey03297, oneframejames - Guests: 80 - Bots: 186
Users: 57,922 (2,481 active)
Latest user: tommybob88

Extended Sprite Despawn Range Fix

SMW Patches → Extended Sprite Despawn Range Fix

Submission Details

Name: Extended Sprite Despawn Range Fix
Author: HammerBrother
Tool: Asar
Requires Free Space: Yes
Bug Fix: Yes
Featured: No
Description: This patch modifies the despawn handling and OAM of most of the extended sprites so that they can safely go offscreen without issues:

-They disappear if the top-left part of the 16x16 bounding box of the sprite touches the left and top edges of the screen. This is very noticeable (and annoying) with the Hammer Brother's hammer if the Hammer Brother is near the top of the screen. Plus this patch lets you modify the boundaries (or range) on where they despawn.

-Some extended sprites like the Torpedo Ted arm wraps the screen due to simply writing #$00 or #$02 to $0420 as a whole byte rather than using bitwise operations to only write on bit 1 (%000000S0).

This all the extended sprite except the unused one (extended sprite $09). I do not know what this was intended for.

This patch requires the Extended No Sprite Tile Limits v3.1 patch.
Tags: despawn extended sprites lorom sa-1
Comments: 3 (jump to comments)
Download 5.49 KiB | 132 downloads


View all

Comments (3)

 MarioFanGamer Link
Moderated with:
Edit: Added proper capitalisation and lorom tag.

It's certainly a very useful patch given that extended sprites in SMW are rather weird and their despawn range doesn't help. The only issues I've noticed is that the smoke sprite is broken in Reznor fights (they don't always appear if at all) as well as how Wiggler flowers don't spawn, though the latter is because of a bug in SMW and can be easily fixed with this patch (it would be nice if you included this fix with this patch, though).
HammerBrother Author Link
Ice Man Thank you! I tested after your suggestion and now all those bugs noted are gone. Updated the patch.
Ice Man Link
I'm not sure if this is the cause to your known bugs but you forgot to convert
!RAM_ExtOAMIndex = $1869
!RAM_ExtOAMIndex = $1869|!addr
since there is no other defines for that RAM anywhere else.