Invisible Solid Barrier - RetroKoH/S1Fixed GitHub Wiki

<- $70: SBZ Girder Object List $72: SBZ Teleporter ->
71_InvisiBarrier

The Invisible Solid Barrier is an object in Sonic the Hedgehog, appearing in various levels throughout the game. It is an invisible object spanning across a designated rectangular space based on its subtype, similar to the Lava Tag. This object is placed over portions of the foreground that require additional solidity-related properties. These objects allow Sonic to be crushed by ceilings, and pushed out of walls while standing still on moving objects. Without this object, both of these functions would be impossible without an extensive rework of the solidity detection system.

Code

File: _incObj/71 Invisible Barriers.asm

Changes from Sonic 1
  • Word-length obPriority pointer due to the new Priority Manager.
  • Word-length obRespawnAddr added due to the S3K Object Manager.

Subtypes

The subtype dictates the size of the block, with the low nybble determining obHeight, and the high nybble determining obDispWid.

For both size parameters, the formula is the following:
SIZE = (NYB + 1) * 8

Solidity

Every subtype has the following SolidObject parameters.

  • Type: Full
  • Width: obDispWid + 11
  • Height (jumping): obHeight
  • Height (walking): obHeight + 1

Object Status Table

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Render Addr Addr Addr Gfx Gfx Map Map Map Map XPos XPos XPos XPos YPos YPos
1x YPos YPos ~ ~ ~ ~ RespawnAddr RespawnAddr ~ ~ Priority Priority Frame ~ ~ ~
2x ~ ~ ~ DispWid ~ ~ ~ ~ Subtype ~ ~ ~ ~ ~ ~ ~
3x ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
⚠️ **GitHub.com Fallback** ⚠️