Language…
19 users online: Amateur,  Anorakun, Betwin2, Daizo Dee Von, DanMario24YT, Dark Prince, deported, Dupuis, ft029, Guleyan112, howardadam1126, metabrawler87, MrFelix_, Nitrogen, PrincessEmilu, RichardDS90, Sonikku, Suru48, xhsdf - Guests: 67 - Bots: 227
Users: 65,870 (2,181 active)
Latest user: Amateur

Brick Block

SMW Blocks → Brick Block

Submission Details

Name: Brick Block
Author: MarioFanGamer
Added:
Act As: Various
Includes GFX: Yes
Description: The all familiar brick block, now with more customisation and better bounce animation!

Depends on PIXI v1.40 alongside GPS.
Tags: brick lorom sa-1 shatter
Comments: 18 (jump to comments)
Rating:
5.0 (1 rating)
No rating
Download 11.56 KiB | 148 downloads

Screenshots

Comments (18)

 RussianMan Link
Tested With:
-Lunar Magic 3.40
-GPS 1.4.4
-PIXI 1.40
-bsnes v115
-SA-1 1.40

A more complex version than the other one, this one uses PIXI 1.40's new sprite capabilities, if you want a technically more accurate version.

While it would appear simple on the surface, I did note a few things and issues:
1) I question the presence of the duplication option. For one, it's more finicky to perform, but, more importantly, the duped block immediately gets destroyed because of the sprite from below interaction resulting in shattering it, only rewarding 50 score points. If there are other methods of duplication besides throwing a carriable sprite from below, I don't recall. Also, I found a bug where trying to dupe the block from the left side makes the carriable sprite disappear. This does not happen from the right side.
2) Minor jank I noticed, throwing a carriable sprite from below to shatter the brick makes the sprite shift a few pixels to the right.
3) While the readme correctly states that setting bounce sprite's !BounceTile define to $FF would allow you to customize the displayed tile within the block, I think it would've been more convinient to have only the block determine wether the bounce sprite uses a custom tile or a hardcoded one. The default settings make it a little confusing.
4) I also question the inclusion of the !solid_acts_like define. I don't know what the applications of this might be, but maybe someone smarter than me can find a use for it. I thought it was broken before remembering it only affects the shattering properties of the block, which seems limiting.
5) Lastly, using vanilla bounce sprites instead of the custom one does not function properly, they will spawn a tile using $9C format, which is set as map16's low byte value. For example, if you have the brick as map16 tile 0306, it'll turn into a coin after the bounce sprite disappears ($9C = 6 - Coin (02B)).

While it could've used a bit more polish, it's still quite functional.
Anas Link
I noticed that this block makes sprites disappear when they hit it in normal vertical levels (i.e., lvl. mode 0x0A) and it's all because of the routine 'shatter_block.asm'. To fix, please replace its contents with this, courtesy of MFG himself:

Code
	PHY
	PEI ($98)
	PEI ($9A)
	LDA $0F
	PHA
	LDA #$02
	STA $9C
	JSL $00BEB0|!bank
	PLA
	STA $0F
	LDA $1933|!addr
	LSR
	REP #$20
	PLA
	BCS ?layer2
	STA $9A
	PLA
	BRA ?common
?layer2:
	SEC
	SBC $26
	STA $9A
	PLA
	SEC
	SBC $28
?common
	STA $98
	SEP #$20
	PHB
	LDA #$02
	PHA
	PLB
	LDA #$00
	JSL $028663|!bank
	PLB
	PLY
	RTL

 MarioFanGamer Author Link
If it's a GPS issue, bring up the complains to the GPS devs instead, thank you!
Moltz Link
Found a minor oversight with the block: if set to use the rainbow shatter particle rather than the brown one, the brick block will show the latter regardless only if Mario breaks it through spin jumping. Otherwise, jumping below it and breaking it through cape/shells makes it use the shattering particle set in the file.

Besides that, fantastic job with it.
 MarioFanGamer Author Link
I know what's causing this: That's because I call the routine which shatters the block through a spin jump. In hindsight, that one turned out to be unnecessary because the code to shatter the blocks in gineral is nearly functional identical to the routine except it doesn't bounce the player. I've fixed it now.
CalHal Link
So what is the difference between S.L’s SMB3 Brick and your Brick Block?
 MarioFanGamer Author Link
This is the second time you've commented on a resource my submission is similar but I'm actively trying to replace.

My main justification is to have a modern brick block since S.L's version still keeps the original block visible during the bounce animation is difficult to fix without the use of custom blocks and pre-PIXI v1.40, you had to use Custom Bounce Blocks which is a bit user-unfriendly to use (hence "better bounce animation" in the description).
Anas Link
Originally posted by MarioFanGamer
I can change the tile just fine. Make sure the sprite also set to be dynamic, it'll otherwise still use hardcoded graphics.


Ahh, got it. It works as intended now!
Anas Link
Originally posted by MarioFanGamer
Okay, I've just added these changes as well as clarified which acts like is recommend and which
one isn't in the readme, though as mentioned on Discord, the custom generic bounce sprite doesn't allow you to set the tile within the block either.


Nice!

Edit: While the pausing bug is gone and hitting sprites while big works now, the '!bounce_tile' define doesn't seem to work on my end no matter what properties or tile I set other than FF. Is it just me? Also, the duplication option doesn't seem to work either even though it's on and I tried to duplicate it the same way as with vanilla blocks. Finally, I forgot to suggest this, but there should be an option for chucks to break the blocks like throw blocks. This is what I put between 'SpriteH:' and 'ReturnSprite:' and it worked fine from my side:

Code
	LDA !9E,x
	CMP #$91
	BEQ .Chuck
    LDA !15A0,x
    BEQ +
.Chuck
	LDY #$01
	LDA #$2E
	STA $1693|!addr


That's all! Thanks for fixing those two main oversights!
 MarioFanGamer Author Link
I can change the tile just fine. Make sure the sprite also set to be dynamic, it'll otherwise still use hardcoded graphics.
Anas Link
I just noticed that for some reason if you are big and there is a sprite on the brick block, hitting it will not hit the sprite which is very odd, especially if using hammer bros. Hopefully this oversight will be fixed soon!

Edit: I found an interesting bug where you can move the whole brick block one tile high if you hit the block to spawn the bounce block sprite while freezing the game by getting a powerup. Actually, why not simply use spooonsss's basic bounce sprite? It doesn't have such an issue, plus, I think it even allows you to set the tile for the bounce sprite within the block itself if the block supports it. Speaking of which, the block has no way to set the tile within the block itself, forcing you to make a whole copy of the bounce sprite just for the desired tile, which is kinda wasteful... I hope this is also considered in the future.
 MarioFanGamer Author Link
Okay, I've just added these changes as well as clarified which acts like is recommend and which
one isn't in the readme, though as mentioned on Discord, the custom generic bounce sprite doesn't allow you to set the tile within the block either.
Anas Link
Originally posted by MarioFanGamer
Did you set the acts like to 132?


Nope, default acts-like is 130. I will try that though. Thanks!
Anas Link
Judging by the GIF, I expected to be able to make the brick blocks turn into coins with a P-Switch, but unfortunately, that doesn't work. Hopefully you will consider this in the meantime. Other than that, I think this is better than the old block!
 MarioFanGamer Author Link
Did you set the acts like to 132?
CalHal Link
Also, officially in SMA4, cape Mario can't destroy the Brick Block with his cape whip, he is just making them bounce. I hope you will work on that in the later version of this soon.
CalHal Link
Dose the Brick Blocks Collects Coins from above after they get breaked or destroyed?
 MarioFanGamer Author Link
Not yet, I planned that for a later version.