

Move.b mainspr_mapframe(a0),d1 get current frame Let's take a look at Obj15 in Sonic 2 for example. One thing that Sonic 2 does to avoid issues with SSTs is to load an object whose purpose is only to hold these sub sprite properties and to display the sprites, while the main object handles all the programming and stuff, and when it needs to handle sprites, it sets the properties in the other object. Mainspr_childsprites = $F amount of child sprites There will be no changes to the mappings format and no other features or optimizations will be implemented. The purpose of this tutorial is to just port the sub sprite functionality to Sonic 1. I will be using the Sonic 2 GitHub disassembly and the Sonic 1 GitHub disassembly (the sprite rendering routine (BuildSprites) in that isn't documented well as of September 8, 2018, so currently it's very similar to the 2005 Hivebrain version, even has the same labels). You can also optimize certain objects, such as the swinging chained platforms or the Green Hill boss' swinging ball, by making the chains sub sprites (which is what Sonic 2 does). With this, it would also open up the possibility of porting other objects from Sonic 2 and 3K to Sonic 1 without needing to make them use more object slots (such as the invincibility stars). For this, I will primarily be using Sonic 2 as an example for simplicity's sake. So, here, I will show you how you can implement such a feature. However, this is not a feature in Sonic 1.
