This is a Rotating Spiked ? Block from New Super Mario Bros. (DS), specifically world 6-3. And only there. Guaranteed to get more use as a custom sprite than its originating game.
The sprite has a number of settings, so read the SpikedBlock.asm file for more details on what each setting will do.
"SpikedBlock_Norm.json" will become a used block sprite after being hit, and will despawn when Mario leaves the area. "SpikedBlock_Norm2.json" will become a layer 1 Used Block object after being hit, despawning instantly. "SpikedBlock_Mem.json" and "SpikedBlock_Mem2.json" do the same things, but will "remember" that it was hit, preventing it from being used again. Depending on the RAM region you use, the RAM could clear after reaching the Overworld, or could only clear when the game first starts. This can make the block either usable each time Mario re-enters the level, or it could only give him 1 chance to use it until restarting the console.
By default, I have $1487|!addr being used (which does the former). Please view the RAM map for free RAM if you'd like to use other RAM regions.
This sprite is Dynamic and requires the use of dsx.asm or the SA-1 patch in order to work. Because of this, more than 4 cannot be active at any single time.
dsx, dynamic, new super mario bros, nsmb, question block, spiked block
Rejected for a multitude of reasons. The major issues are:
-Touching the side of a used NSMB Block after doing a capespin (regardless of if touching the sprite when capespinning) can crash the game.
-The game can also crash on LoROM if you touch the side of the sprite after hitting a block directly underneath the NSMB Block, so that the block's bounce sprite contacts the NSMB Block.
-Touching the side of an active NSMB Block would sometimes warp the player off the edge of the screen. Other times, it would cause the player to take damage (even if the side was non-spiked).
-The item memory versions only specified 2 extra bytes in their JSONs. This meant the 3rd extra byte was uninitialized, and indexed out of bounds when setting the item memory (in the case of the default freeRAM $1487 on LoROM, it ended up indexing to $1493 and triggering a glitched level end when hitting the block).
Issues that aren't so major but would still need to be fixed:
-Touching the side of a used NSMB Block while doing a capespin makes you go through the sprite.
-Sometimes the player would "stick" to the sides of the block and not be able to move away from it until far enough away vertically.
-The !CanSpinjump define was never implemented - the player can always spinjump on the spikes from the top.
-The Multi-coin version does not work - it will always spawn a single coin then turn into the "used" state.