(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-07-24 03:47 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - "Perfect" breakable bricks for SMW! New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
BMF54123
WARNING: MOOD LEVEL CRITICAL








Since: 11-18-05
From: MOOGLES

Last post: 6288 days
Last view: 6287 days
Posted on 04-05-06 07:55 AM Link | Quote
Yes, I realize that SMB3-style bricks have been available for some time now...however, they're not quite "right" (the blocks don't bump up when small Mario hits them, for example). I've decided to remedy this the only way I know how: by spending a whole night figuring out sprite-block interactions, and making my own routines from scratch!

First off, find some free space in your ROM, and insert the following two routines:

brick1.bin
brick2.bin

Convert the starting address of both routines to SNES format and write them down. Next, go to the following addresses, and change each JSL to point to the new brick routines:

$97D2: brick1
$9BC9: brick1
$1182C: brick1
$6F02: brick2

Finally, change $10A76 to 06; this will prevent the bricks from turning when small Mario hits them (or you can leave this at FF and have "hybrid" turn-bricks).

That's all there is to it! The original turn blocks should now behave exactly like SMB3 bricks. Hitting them as big Mario, kicking a sprite into them, smacking them with your cape, and spin-jumping on them will cause them to break, while hitting them as small Mario will merely bump them up (knocking out any enemy on top, of course).

If you run into any odd behavior or crashes, please let me know exactly what you did to cause it. I'm pretty sure I tracked down all the necessary turn block routines, though I may have missed one or two.
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 04-05-06 09:04 AM Link | Quote
So am I correct in saying that when you bump these blocks, the original map16 block is erased and you create a sprite instance? That seems to be the approach I'd take. Also what's with the .bin files, wouldn't it be easier to provide an asm patch? I'd convert if for you if you want.


(edited by MathOnNapkins on 04-05-06 08:04 AM)
C:/xkas bio.asm
Compiled ASM code








Since: 11-17-05

Last post: 6288 days
Last view: 6287 days
Posted on 04-05-06 12:57 PM Link | Quote
aren't the one in blktool(not the one in DW and DW:TLC one) already have the bounce block effect?


(edited by Bio on 04-05-06 11:57 AM)
FPI

Coney








Since: 11-18-05
From: Germany

Last post: 6290 days
Last view: 6301 days
Posted on 04-05-06 01:15 PM Link | Quote
Originally posted by Bio
aren't the one in blktool(not the one in DW and DW:TLC one) already have the bounce block effect?


Yes, I'm sure they have it already.
spel werdz rite









Since: 11-19-05

Last post: 6288 days
Last view: 6287 days
Posted on 04-05-06 01:26 PM Link | Quote
I removed the "bump" routine in BlockTool. I didn't like it.
Skreename

Giant Red Paratroopa


 





Since: 11-18-05

Last post: 6294 days
Last view: 6287 days
Posted on 04-05-06 05:41 PM Link | Quote
The ones in blocktool don't seem to behave quite right, from what I've seen. The original blocks will jump up, leaving a blank space where they were in the meantime, while the ones in blocktool from what I've seen merely spawn the sprite, leaving the original block in place during the process, which looks... sloppy.
BMF54123
WARNING: MOOD LEVEL CRITICAL








Since: 11-18-05
From: MOOGLES

Last post: 6288 days
Last view: 6287 days
Posted on 04-05-06 06:42 PM Link | Quote
Originally posted by MathOnNapkins
So am I correct in saying that when you bump these blocks, the original map16 block is erased and you create a sprite instance?
Yes, that's how the original game does it. Specifically, the sprite it creates replaces the Map16 three times: when it bounces upward, it swaps in a solid placeholder (probably to prevent sprites from falling through in the brief moment the block is bouncing), and when it drops, it swaps in the "always-turning turn block" for #$FF frames (the value at $10A76). Once the counter reaches zero, the sprite swaps in the original turn block, and then deletes itself. Each sprite takes up one entry in the sprite table, and is processed even while offscreen, which is why you can only have 4 active blocks at any given time.

With my new routines, if small Mario hits a block, the original "bounced block" routine is called; if big Mario or a sprite hits the block, the "broken block" routine is called. The latter requires specific values to be present in A and Y, and also requires Mario's Y speed to be preserved (otherwise he bounces upward whenever a block breaks, likely part of the spin jump routine). This is why simply replacing the original JSLs wouldn't work.

Originally posted by MathOnNapkins
Also what's with the .bin files, wouldn't it be easier to provide an asm patch? I'd convert if for you if you want.
I would've just made an IPS patch, but I have no idea what space is available in any given ROM, since Lunar Magic and Block Tool both scan for empty space and use whatever they can find. I didn't want my new routines inadvertently overwriting any existing data.


(edited by BMF54123 on 04-05-06 05:50 PM)
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6287 days
Last view: 6287 days
Posted on 04-09-06 09:01 AM Link | Quote
Well meh... I got bored and whipped up a patch that is equivalent. The labels I use are pretty generic and xkas could use a .label labels but I'm not sure if those are features of other assemblers so I just jused label: labels. Let me know if I transcribed something incorrectly.

edit: whooops . Don't try to use org $1F0000... use $1F8000 or something. Either way I just patched and it seems to work. I also noticed that using shells and such will destroy turn blocks whether you are super mario or just mario.

Also, it's annoying that the palette still changes when they are bumped. At first I thought the patch didn't work. Then I realized it was the palette swap that was playing tricks on my eyes.

Attachments

bmf.txt (1048b) - views: 89



(edited by MathOnNapkins on 04-09-06 08:16 AM)
Keitaro

Mole


 





Since: 11-18-05
From: Massachusetts

Last post: 6446 days
Last view: 6446 days
Posted on 04-09-06 05:41 PM Link | Quote
One question. I just recently found a very nast glitch in the original FuSoYa (or whoever mde the smb3 blocks in demo world) SMB3 blocks, which when a P-Switch is activated, an smb3 block that contains a coin or an item will still act like that SMB3 block only with coin graphics when you hit a P-Switch I'm assuming that...dosn't happen here?
FPI

Coney








Since: 11-18-05
From: Germany

Last post: 6290 days
Last view: 6301 days
Posted on 04-09-06 07:02 PM Link | Quote
I could be wrong, but if I remember right, the same thing happens in the original SMB3/Allstars, by hitting a P-Switch, too.
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6288 days
Posted on 04-09-06 08:26 PM Link | Quote
I have tryed it, it worked, but not fine. Letīs see, I have followed all your instructions, but it applyes to all the blocks, and Small Mario and Big Mario canīt break them .
BMF54123
WARNING: MOOD LEVEL CRITICAL








Since: 11-18-05
From: MOOGLES

Last post: 6288 days
Last view: 6287 days
Posted on 04-10-06 05:47 AM Link | Quote
Originally posted by MathOnNapkins
I also noticed that using shells and such will destroy turn blocks whether you are super mario or just mario.
Of course...that's how the bricks behaved in SMB3. They only check Mario's size (LDA $19 in brick2) when he either spin jumps on them or hits them from below.

Originally posted by MathOnNapkins
Also, it's annoying that the palette still changes when they are bumped. At first I thought the patch didn't work. Then I realized it was the palette swap that was playing tricks on my eyes.
That, unfortunately, I can't fix, since sprites and backgrounds can't share palettes.

I nearly forgot that the bricks in SMB3 turn into coins when a P-Switch is hit...I wonder how hard it would be to replicate that behavior? Should I even bother doing it?
Stifu









Since: 11-18-05
From: Your mom's bed

Last post: 6289 days
Last view: 6287 days
Posted on 04-10-06 06:13 AM Link | Quote
Originally posted by BMF54123
I nearly forgot that the bricks in SMB3 turn into coins when a P-Switch is hit...I wonder how hard it would be to replicate that behavior? Should I even bother doing it?

I don't remember very well, but if it's coins you can't collect (that is to say they're still bricks, only don't look like bricks anymore), then you shouldn't bother. It's better as is.
SnifflySquirrel

Shyguy








Since: 03-03-06
From: Vermont

Last post: 6388 days
Last view: 6288 days
Posted on 04-10-06 03:46 PM Link | Quote
Originally posted by BMF54123
The original turn blocks should now behave exactly like SMB3 bricks.

Actually, they remind me of the "turn blocks" from SML2, since they break when you spin jump them too.

Originally posted by BMF54123
I nearly forgot that the bricks in SMB3 turn into coins when a P-Switch is hit...I wonder how hard it would be to replicate that behavior? Should I even bother doing it?

Originally posted by Stifu
I don't remember very well, but if it's coins you can't collect (that is to say they're still bricks, only don't look like bricks anymore), then you shouldn't bother. It's better as is.

I think he means making the turn blocks act like coins when a blue P-Switch is active (since you could just use a custom animation to make it look like one ). If you do choose to look into this, I suggest creating a separate hack to make those brown "used" blocks NOT turn into coins when you hit a blue P-Switch. (Turn blocks becoming coins + used blocks becoming coins = too many coins )


(edited by SnifflySquirrel on 04-10-06 03:00 PM)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6288 days
Last view: 6288 days
Posted on 04-11-06 01:52 AM Link | Quote
IIRC, they actually turn into coins in SMB3, not just look like them.
C:/xkas bio.asm
Compiled ASM code








Since: 11-17-05

Last post: 6288 days
Last view: 6287 days
Posted on 04-11-06 02:14 AM Link | Quote
Originally posted by HyperMackerel
IIRC, they actually turn into coins in SMB3, not just look like them.

nope, It seem to use an animation in smb3 too, the same one used to change coin into brick and stop ? block from moving


(edited by Bio on 04-11-06 01:22 AM)
Disruptive Idiot

Red Paragoomba


 





Since: 11-17-05
From: Syosset

Last post: 6415 days
Last view: 6287 days
Posted on 04-26-06 08:54 PM Link | Quote
Originally posted by Bio
Originally posted by HyperMackerel
IIRC, they actually turn into coins in SMB3, not just look like them.

nope, It seem to use an animation in smb3 too, the same one used to change coin into brick and stop ? block from moving


But in the first level you collect the brick blocks that turn into coins when you hit the P-Switch. If a brick block had something in it, it looked like a coin with the P-Switch active, but it still acted normally.
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - "Perfect" breakable bricks for SMW! |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.040 seconds; used 436.62 kB (max 561.07 kB)