NEW in v1.1.1
- Split up 3-byte table into three different tables, because this makes the data more efficient to access.
- Added a feature to change the IRQ scanline (status bar height) on a per-level basis for levels when SSB is disabled, because the original patch that allowed this shares a hijack with SSB and cannot be used on the same ROM.
To use the sprite course clear text feature, you must have No More Sprite Tile Limits patched to your ROM. You do not have to enable it in your level, but it must be installed.
See this for more info: http://www.smwcentral.net/?p=thread&id=25824
Just tried this today, and surprisingly, it works totally fine and doesn't crash with LM3! This status bar is indeed very useful for those who like the vanilla status bar but need to use a sprite version.
Of course, there are a few important problems that should be addressed in the remoderation:
#1 - First of all, seconding with Mogu64 and GHB, the sprite status bar should use DMA so it will take up fewer tiles, similar to LX5's dynamic powerup system in his custom powerups patch, which brings me to this; (Edit: I rest my case with this point. A look in BSNES' tile viewer under the debugger shows that it only takes one row in any sprite GFX slot from SP1-4 starting from your starting tile + a few more tiles in the next row.)
#2 - While the patch allows you to change where the entire tilemap for the SSB will start, can't we do much better than that by remapping each individual tile of the status per level? (Edit: Actually, this won't quite matter that much personally because of what I mentioned in the previous point, but if anyone wants to implement this feature in the remoderation, I say let them. However, some sprite GFX are overwritten by a bunch of duplicate blank tiles, wasting some space. That could definitely be optimized if you can do so easily.)
#4 - If you update many tiles at once by, say, hitting multiple ?-blocks or collecting multiple coins at once, or have too many animations in the level, the screen will flicker. Sometimes when the screen scrolls up, the screen will randomly flicker. The SSB should really be optimized especially in this regard. (Edit: I believe this couod be because of the new IRQ system in the latest SA-1 Pack? Also, this glitch will happen very easily with SA-1, but not that much with LoROM.)
#5 - The IRQ does not play well in levels using LM3's big horizontal levels feature.
#6 - Of course, this should be made to consume as few sprite slots as possible. (Edit: If it even causes the slightest slowdown in LoROM, I highly suggest that it be fixed.)
#7 - Minor, but the IRQ doesn't apply to the very few top scanlines of the screen. (Edit: this is at least noticeable for Mode 0 levels, see here.)
Well, that's all, folks. Hope the SSB gets tidied up soon.
Note that the patch is not optimized for SA-1 speed, so you may have similar slowdown experiences compared to the standard version. Or not.
Also changed the COURSE COURSE CLEAR code to invoke SNES when on SA-1 mode and additionally changed the OAM find routine (which was a hacky call to No More Sprite Tile Limits) to a simpler version, which while it can be slower, it won't have any impact in the game speed since it's only used on course clear moment.
@Magu94: Considering that the sprite status bar use... well, sprite tiles, it have to overwrite some sprite tiles (you can't add more space for sprite GFX space, btw). You so need to workaround at your level. It should be also noted that you can change the overwritten tiles at "LevelGraphicsLoc:" and "LevelSBProp:" (by default, it the overwriting starts at tile $80 on the second page). Remember that it's a per level setting so chose the correct level you want to edit.