@GreenLightningx6:
To prevent the hammers and boomerangs from killing NPCs, SMB Classic Flags and other sprites that you don't want to be killed, find and open the files mario_hammer_props.asm and mario_boomerang_props.asm located inside the folder extended\powerup. Both files act like a whitelist for sprites that should not be killed with projectiles.
After you open mario_hammer_props.asm you will see this:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Bits:
; 0 = Can't be killed by Hammer
; 1-3 = Unused
; 4 = Don't interact with the Hammer at all.
; 5-7 Unused
; Bit order is:
; 76543210
And below that text you will see this also:
hammer_custom_sprites:
db %00010001,%00010001,%00010001,%00010001 ;custom sprites 0-3
db %00010001,%00010001,%00010001,%00010001 ; custom sprites 4-7
db %00010001,%00010001,%00010001,%00010001 ; custom sprites 8-B
db %00010001,%00010001,%00000000,%00000000 ; custom sprites C-F
By default, the first 14(0D in hexadecimal) sprites are inmune to hammers since they are the custom powerup items.The other ones can be killed with the hammers because their default settings are %00000000(this means that none of the bits are enabled). If you enable one of the used bits(0 and 4) by replacing a cero with a 1,the sprite will have the behavior specified in the bit list.
For example, if you enable bit 0 on sprite F (replace the last 0 on %00000000 with a 1, it becomes 00000001) the sprite will be inmune to hammers and when a hammer hits the sprite, it will be reflected. To prevent the sprite from reflecting the hammer, replace the fourth 0 with a 1(00010001).
These steps work for all the custom sprites. For example, if you inserted your NPC sprite as sprite 16, find this line:
db %00000000,%00000000,%00000000,%00000000 ; custom sprites 14-17
and replace the third %00000000 with %00010001 and it will become:
db %00000000,%00000000,%00010001,%00000000 ; custom sprites 14-17. The replaced numbers are the settings used for sprite 16. This means that the first %00000000 are the settings for sprite 14, and the last %00000000 for sprite 17. In other ones, just replace the %00000000 from the sprite number of your NPC sprite(and the other ones that you don't want to be killed with the hammer) with %00010001.
The file mario_boomerang_props.asm uses the same settings, just follow the previous steps.
The only difference is the text at the start:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Bits:
; 0 = Can't be killed by Boomerang.
; 1-3 = Unused
; 4 = Don't interact with the projectile at all.
; 5 = Unused
; 6 = Can be retrieved by Boomerang.
; 7 = Bypass Bit 4 setting, used to retrieve some sprites.
; Bit order is:
; 76543210
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
But the bits numbers are the same that the ones used by the hammer, so you only have to replace the %00000000 from the sprite numbers with %00010001.
After you finished making the sprites that you said inmune to hammers and boomerangs, reinsert your sprites with PIXI and they should be inmune to both hammers and boomerangs. It's not necessary to reaply the patch.
To prevent the hammers and boomerangs from killing NPCs, SMB Classic Flags and other sprites that you don't want to be killed, find and open the files mario_hammer_props.asm and mario_boomerang_props.asm located inside the folder extended\powerup. Both files act like a whitelist for sprites that should not be killed with projectiles.
After you open mario_hammer_props.asm you will see this:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Bits:
; 0 = Can't be killed by Hammer
; 1-3 = Unused
; 4 = Don't interact with the Hammer at all.
; 5-7 Unused
; Bit order is:
; 76543210
And below that text you will see this also:
hammer_custom_sprites:
db %00010001,%00010001,%00010001,%00010001 ;custom sprites 0-3
db %00010001,%00010001,%00010001,%00010001 ; custom sprites 4-7
db %00010001,%00010001,%00010001,%00010001 ; custom sprites 8-B
db %00010001,%00010001,%00000000,%00000000 ; custom sprites C-F
By default, the first 14(0D in hexadecimal) sprites are inmune to hammers since they are the custom powerup items.The other ones can be killed with the hammers because their default settings are %00000000(this means that none of the bits are enabled). If you enable one of the used bits(0 and 4) by replacing a cero with a 1,the sprite will have the behavior specified in the bit list.
For example, if you enable bit 0 on sprite F (replace the last 0 on %00000000 with a 1, it becomes 00000001) the sprite will be inmune to hammers and when a hammer hits the sprite, it will be reflected. To prevent the sprite from reflecting the hammer, replace the fourth 0 with a 1(00010001).
These steps work for all the custom sprites. For example, if you inserted your NPC sprite as sprite 16, find this line:
db %00000000,%00000000,%00000000,%00000000 ; custom sprites 14-17
and replace the third %00000000 with %00010001 and it will become:
db %00000000,%00000000,%00010001,%00000000 ; custom sprites 14-17. The replaced numbers are the settings used for sprite 16. This means that the first %00000000 are the settings for sprite 14, and the last %00000000 for sprite 17. In other ones, just replace the %00000000 from the sprite number of your NPC sprite(and the other ones that you don't want to be killed with the hammer) with %00010001.
The file mario_boomerang_props.asm uses the same settings, just follow the previous steps.
The only difference is the text at the start:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Bits:
; 0 = Can't be killed by Boomerang.
; 1-3 = Unused
; 4 = Don't interact with the projectile at all.
; 5 = Unused
; 6 = Can be retrieved by Boomerang.
; 7 = Bypass Bit 4 setting, used to retrieve some sprites.
; Bit order is:
; 76543210
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
But the bits numbers are the same that the ones used by the hammer, so you only have to replace the %00000000 from the sprite numbers with %00010001.
After you finished making the sprites that you said inmune to hammers and boomerangs, reinsert your sprites with PIXI and they should be inmune to both hammers and boomerangs. It's not necessary to reaply the patch.