Language…
10 users online: Alex No,  AmperSam,  Anorakun, DinoMom, Green, Hiro-sofT, Kerd, Papangu,  Telinc1, yoshisisland - Guests: 292 - Bots: 520
Users: 64,795 (2,368 active)
Latest user: mathew

Making bubbles empty?

Do you know those bubbles that appear in that Forest of Illusion level? Well, I want to make them empty. I saw some stuff in the ROM Map about these bubbles, but I can't make sense of that stuff. Couldn't I just change the Goomba, Bob-omb, and fish sprite IDs in the table at $02D9A1 to one of the null sprites such as 69, and I have an empty bubble?

Click the character on the right side of my layout to visit my Discord server and discuss and play and look at and get updates and sneak peeks of the games and other things I'm making.

The authors of these 2 My Little Pony fan games have removed their games from the Internet.
Rise of the Clockwork Stallions has been updated! Download My Little Pony: Rise of the Clockwork Stallions DX: Director's Cut and My Little Pony: Magic Shards now! Spread this link!

There is probably a more elegant way to do this than I'll describe, but this method will work.

Code
;Sprites spawned from Bubbles
org $02D9A1
db $0F,$0D,$15,$74 ;Goomba[$0F], Bob-omb[$OD], Cheep-Cheep[$15], Mushroom[$74]

;GFX Tiles used by sprites in Bubbles (2 animation frames with 2 bytes in them)
org $02D8A1
db $A8,$CA,$67,$24,$AA,$CC,$69,$24 ;Goomba[$A8|$AA], Bob-omb[$CA|$CC], Cheep-Cheep[$67|$69], Mushroom[$24|$24]

;Palette/GFX Page Table of Sprites in bubbles
org $02D8A9
db $84,$85,$05,$08 ;Goomba[$84], Bob-omb[$85], Cheep-Cheep[$05], Mushroom[$08]
;$84 = 1000 0100
;$85 = 1000 0101
;$05 = 0000 0101
;$08 = 0000 1000


This code is part of the default vanilla SMW bubble. What I provided for you is code that will enable you to change the sprite spawned when the bubble is popped, the GFX inside the bubble, and the bytes used to change the YXPPCCCT of the bubbled sprites.

To achieve an empty bubble (replacing a goomba) you'll want to do the following:

Code
;Sprites spawned from Bubbles
org $02D9A1
db $69,$0D,$15,$74 ;We changed Goomba[$0F], to Null sprite[$69]

;GFX Tiles used by sprites in Bubbles (2 animation frames with 2 bytes in them)
org $02D8A1
db $8A,$CA,$67,$24,$8A,$CC,$69,$24 ;We changed Goomba[$A8|$AA] to GFX tile [$8A] for both animations

;Palette/GFX Page Table of Sprites in bubbles
org $02D8A9
db $85,$85,$05,$08 ;We changed Goomba[$84] to use 2nd GFX page [$85]


Because the code above changed the GFX tile for the bubbled sprite to $8A, and $8A isn't exactly empty, use this GFX02.bin replacement to make that tile empty (vanilla doesn't use the tile anyways so no other sprites will be affected).
As I said, there is probably a more elegant way to do this, but this method functions as desired. It will replace every goomba containing bubble with an empty one.

If you want to empty all 4 versions of the bubbles completely just do this:
Code
;Sprites spawned from Bubbles
org $02D9A1
db $69,$69,$69,$69

;GFX Tiles used by sprites in Bubbles (2 animation frames with 2 bytes in them)
org $02D8A1
db $8A,$8A,$8A,$8A,$8A,$8A,$8A,$8A

;Palette/GFX Page Table of Sprites in bubbles
org $02D8A9
db $85,$85,$85,$85