Hivebrain's Sonic 1 disassembly (2005)
Ищем Obj36_Hurt.Obj36 - это шипы.
Заменяем это

Код:
Obj36_Hurt:        ; XREF: Obj36_SideWays; Obj36_Upright
    tst.b	($FFFFFE2D).w	; is Sonic invincible?
    bne.s	Obj36_Display	; if yes, branch
    move.l	a0,-(sp)
    ...

на это

Код:
Obj36_Hurt:        ; XREF: Obj36_SideWays; Obj36_Upright
    tst.b	($FFFFFE2D).w	; is Sonic invincible?
    bne.s	Obj36_Display	; if yes, branch
    tst.w	($FFFFD030).w	; +++ is Sonic invulnerable?
    bne.s	Obj36_Display	; +++ if yes, branch
    move.l	a0,-(sp)
    ...

Sonic 1 disassembly (svn version)
Идём в _incObj\36 Spikes.asm.В этом файле ищем

Код:
Spik_Hurt:        ; XREF: Spik_SideWays; Spik_Upright
    tst.b	(v_invinc).w	; is Sonic invincible?
    bne.s	Spik_Display	; if yes, branch
    move.l	a0,-(sp)

и заменяем на это

Код:
Spik_Hurt:        ; XREF: Spik_SideWays; Spik_Upright
    tst.b	(v_invinc).w	; is Sonic invincible?
    bne.s	Spik_Display	; if yes, branch
    tst.w	(v_player+$30).w ; +++ is Sonic invulnerable?
    bne.s	Spik_Display	; +++ if yes, branch
    move.l	a0,-(sp)

Компилируем и радуемся!  ^^