Language…
11 users online:  AmperSam, autisticsceptile1993, crocodileman94, deported,  Devazure, kurtistrydiz, Marcozzo Daro,  NopeContest, Saela,  Selicre, tifa11234 - Guests: 111 - Bots: 69
Users: 68,376 (2,251 active)
Latest user: unevensea

SMB3 Screen Scrolling Pipes 4.0.2

SMW Blocks → SMB3 Screen Scrolling Pipes 4.0.2

Submission Details

Name: SMB3 Screen Scrolling Pipes 4.0.2
Author: HammerBrother
Added:
Version History: View
Act As: 130
Includes GFX: Yes
Description: See tutorial here. The blocks section has a small 1MIB limit preventing me from submitting this as a whole.

FuSoYa's pipes patch wasn't compatible with Gopher Popcorn Stew, so I uploaded my own. Even if it's updated to work with GPS, it is buggy.

These pipes, when entered, will cause mario to travel through pipes within the same level rather than refreshing the screen, useful for maze levels for those who refuses to use screen exits (which is a pain).

Whats best is that:

-unlike wiiqwertyuiop's, this centers the player correctly and is impossible to make the pipes play a "pipe sfx" multiple times for entering/exitng the pipe.

-there are several (more like countless) bugs in mikeyK's pipes (outdated) ranging from passable corners, to horizontal pipe caps that you can enter randomly not working should there be a level time limit, all the way to ceiling slopes teleporting mario (or killing him based on y position).

-now there are pipe turn-corners for mini pipes!!

-the best thing ever about this is that GPS has a "block to insert" list, due to having multiple blocks in this package, It made it easier for inserting all the blocks at once just by copying what's in "pipe_tiles_list.asm" and pasting it in "list.txt". THANK GOD that was faster than tedious editing whats in "edit block database" of btsd and that btsd insert the blocks one by one at a time.

I couldn't fit the description in the print command (they are often long; they would overwrite descriptions of other blocks), but I made a .map16 so its easier to understand.

Notes:
-If there are at least 2 sprites on screen, and mairo enters a pipe, mario will partially disappear as he enters a pipe, you should download the "no more sprite tiles limit" to prevent that.

-If you have a low-gravity generator that DEC $7E:007D (mario's Y speed), make sure that you add a check that if $7E:009D is nonzero, or the low nibble (low 4 bits, %----XXXX) of a ram address defined "!pipe_dir" is non-zero, then skip/return, because mario will then rise up slowly while traveling through horizontal pipes. You absolutely don't want to touch his physics while inside pipes.

You can now use these pipes in layer 3 tides.

Version 4.0.0 updates:
-Added screen scrolling *warp* pipes
-Cap cannons
-Several bug fixes
-Blocks rearranged
-Vertical pipes (normal-size) enterable-width can now be customized
v4.0.1:
-Fixed a potential issue where setting $13FB (often set by yoshi growing animation) during pipe transition does not freeze the timer !Freeram_SSP_PipeTmr. Most likely this bug will happen with other ASM resources using $13FB

See more in Version_History.txt.

Github: https://github.com/GhbSmwc/SMB3_ScreenScrollingPipes
Tags: lorom maze pipes sa-1
Comments: 113 (jump to comments)
Rating:
0.0 (0 ratings)
No rating
Download 199.96 KiB | 1,681 downloads

Screenshots

View all

Comments (113)

Gasterus155 Link
Originally posted by Amomario123w
HEY, what exactly thing you need to change to make it work properly? i can't find the "insrsce".. part anywhere inside the /SSPdef/Define.asm

You can search on it in the file
I'm sure it's in the" fixes" file
In the line 74
Gasterus155 Link
Originally posted by HammerBrother
Make sure you apply the patch (included). Beware that some other patches may conflict with that patch. Intended to check if player is on the ground to enable entering pipes.

.
For the first time it dosen't work
I serched a lot about the problem
then i found someone say to change "insrsce"../SSPdef/Define.asm" to "insrce"./SSPDef/Define.asm" or something like that
It mean to change `.." to `."
And it worked
You have to fix that problem becaus many users Don't know about that
Amomario123w Link
HEY, what exactly thing you need to change to make it work properly? i can't find the "insrsce".. part anywhere inside the /SSPdef/Define.asm
Gasterus155 Link
Why the horizontal pipes dosen't work?
HammerBrother Author Link
Make sure you apply the patch (included). Beware that some other patches may conflict with that patch. Intended to check if player is on the ground to enable entering pipes.
 AmperSam Link
FYI, there's a small oversight in the ..HidePlayer routine where if you have a Yoshi active in the level, and you enter the pipe the Yoshi disappears. To fix it you can change the following lines (in the ScreenScrollingPipes.asm library file):

Code
LDA #$FF	;|\Render player invisible
STA $78		;//

into this:

Code
LDA #$EF
LDY $187A|!addr
BEQ +
LDA #$FF
+
STA $78
gabiel_poli Link
i like it!
SJandCharlieTheCat Link
I'm sure almost no one will need this info, but note that if you want the pipe functionality in your title screen level, just having the UberASM code in gamemode 14 like normal isn't enough. You'll need to also set it specifically for C7 or GM7, too.
HammerBrother Author Link
Vash the fairytailRam usage conflict
Originally posted by Wallkick
Code
!flags			= $61		; The wallkick flags. (RAM)
!no_back_timer		= $62		; The timer for not moving back. (RAM)
!temp_y_spd		= $63		; The temporary Y speed. (RAM)


Vash the fairytail Link
This earthen pipe block does not work well with the wall kick patch.
Mario will not be able to come out of the earthen pipe and cannot be used together.

https://www.smwcentral.net/?p=section&a=details&id=18720
HammerBrother Author Link
 MarioFanGamer thanks! I tend to have oversights like copy and paste errors.
 MarioFanGamer Link
As per request by the author, I fixed an error in the description where the low nibble of !pipe_dir needs to be checked, not the address as a whole.
 MarkAlarm Link
Moderated with:
- Lunar Magic 3.30
- GPS 1.4.21
- UberASMTool 1.4
- Asar 1.81
- SA-1 Pack 1.40 (also tested without)
- Snes9x v1.60, bsnes-plus v05

This version was just some minor bug fixes from the last version that was already approved. Accepted without issue.
GlitchyR-01 From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
These pipes are amazing!
SJandCharlieTheCat Link
Yeah thanks again for making such an incredible resource, that so many people have gotten so much use out of over the years.

In v4.0.0, I've noticed that there are a few instances where there's particularly bad sprite lag after patching the SSP fixes patch in combination with No More Sprite Tile Limits in particular (v1.2.1, the latest stable version).

I patched them to a clean rom — the only other modification being FastROM — and had heavy slowdown while there were 4+ sprites on-screen in two different scenarios: in an interactable layer 2 level I made, and at that long line of koopas at the beginning of vanilla level 106. (Both scenarios prominently involved shells, for what it's worth. Also, the lag in the layer 2 level was removed when changing it into a normal mode 00 level.)

I tested these scenarios with a number of other patch combinations, too. No More Sprite Tile Limits on its own had no effect here. NMSTL + frame rule patch produced negligible lag; and the SSP patch + frame rule patch had a bit more lag. But it was only the specific combo of the SSP patch with No More Sprite Tile Limits that can really produce severe lag here.

I know that using both patches just increases the amount of processing in general; but I figured I'd still bring it to your attention, on the chance that you can think of anything that might help the two patches co-exist a bit better in situations like these. (I also have some videos I made that show the exact setups with the lag, too, if you'd like to take a look.) Thanks a lot!
HammerBrother Author Link
SimFan96 All fixed! Thanks for reporting. It was my dream of making level designing with SSP awesome as possible.
SimFan96 Link
Hey! Thank you for all of your continued work for these pipes!

I did want to let you know about an issue with the fixes patch. So there is an extra NOP that appears in the hijack at $01A14D. One NOP overwrites the LDA portion of LDA $1A that is at $01A152 which causes glitches when stunning a mecha-koopa if said patch is applied. I just wanted to let you know about the issue!

Thanks for all of your hard work with these pipes!
SJandCharlieTheCat From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Amazing stuff — just an enormous amount of effort (and prodigious skill).

On a super minor note: I'm using v2 of the blocks/tiles, and it looks like 4C0 and 4C1 — two of the DragPlayer.asm tiles — weren't assigned GFX, and appear as untextured tiles. You can simply copy over tiles 440 and 452 for them, respectively.

[Edit:] I'm deleting everything else I had written after this. Those blocks originally weren't working for me at all, but I didn't realize there was a level table in SSPDragMarioMode.asm; and I had saved the demonstration level to a level number other than 105. (The graphics issue was just a coincidence.)
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
LobineYT I tried to put fixes.asm and I got this error I did everything you asked and I got an error

Show me the error on the screen.
LobineYT From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
I tried to put fixes.asm and I got this error I did everything you asked and I got an error
BlueToad From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Dod you replace any graphics slot?
Scoutellite From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
erm... I don't know what I did wrong, I followed your guide
codfish1002 From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by HammerBrother
did you test this in a clean rom? Note that several RAM addresses are used, also, fixes.asm that came included is needed since blocks can’t properly check if the player is on the floor.



ok i applied fixes.asm as i thought i didn't need it and it worked thanks #w{=3}
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by codfish1002
ok so i managed to insert the pipes but i've ran into a problem that i can't seem to figure out

i installed every thing correctly however for some reason only the vertical pipes work while the horizontal ones won't work at all

do you have any idea on why this is happening?


did you test this in a clean rom? Note that several RAM addresses are used, also, fixes.asm that came included is needed since blocks can’t properly check if the player is on the floor.
codfish1002 From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
ok so i managed to insert the pipes but i've ran into a problem that i can't seem to figure out

i installed every thing correctly however for some reason only the vertical pipes work while the horizontal ones won't work at all

do you have any idea on why this is happening?
Nara Sherko From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
also known as super mario land 2 pipe translation
Quite_430_Goo From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
#smw{:TUP:}
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by Zeproide
Okay, I've been having some trouble with inserting the pipes, I tried following the tutorial, but still I get glitched out. Right now, when I try to enter the pipe, I don't go inside the pipe, I trigger a bug where Mario is able to walk/jump through basically anything. I need help, please. Thank you.


Zeproide Did you insert the uberasm code via uberasm tool? That is the code that handles the pipe state of the player. That is the code meant to run every frame (runs the main if the pipe state is nonzero).

(the reason why the player goes through everything is because fixes.asm modifies a lot of the physics that may cause issues with the player's interaction with objects and sprites. In this case, it skips code that would eject the player out of blocks (such as moving him slowly to the left when clipped into it), this is to prevent possible minor bug where the player enters a bottom vertical small pipe cap being 1 pixel off)
Zeproide From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Okay, I've been having some trouble with inserting the pipes, I tried following the tutorial, but still I get glitched out. Right now, when I try to enter the pipe, I don't go inside the pipe, I trigger a bug where Mario is able to walk/jump through basically anything. I need help, please. Thank you.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by Galeth
I've got a headache just by looking how many files this pack includes and triying to figure out how to make these pipes work (I know it shouldn't be so hard but anyway). I love to see the amount of effort some people do in order to contribute to this community.


Galeth There is a link to the documentation in the description.
Galeth From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
I've got a headache just by looking how many files this pack includes and triying to figure out how to make these pipes work (I know it shouldn't be so hard but anyway). I love to see the amount of effort some people do in order to contribute to this community.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by codfish1002
nice now since these where accepted time to use them in my hack thank you very much for making these #smw{^_^}


You welcome! Just imagine maze levels with pipes not being physically connected, or to have passible pipe parts and platforming areas being in the same spot without blocking that area.
codfish1002 From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
nice now since these where accepted time to use them in my hack thank you very much for making these #smw{^_^}
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by MiniMawile303
Upon moderation, the Pixi routine included didn't insert properly due to faulty label names, so I re-named them and updated the submission file. Quick fix, tested with the carriable triangle sprite.


Looks like pixi does not support macro labels.
 MarkAlarm From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Moderated with:
Lunar Magic 3.21
GPS 1.4.1
UberASMTool 1.4
Asar 1.71 + Walljump/Note Block Glitch Fix v1.6
Pixi 1.2.15 + Pinkie the Carriable Triangle
SA-1 Pack 1.32 (also tested without)
Snes9x 1.60

What a release! These pipes are quite useful and really easy to place within the level. After testing out all of the different features and trying different combinations of pipes, carriable sprites, yoshi, and powerups, everything seems to work as intended, with only two minor things to note. Regardless, this pack is accepted.
For whatever reason, if Yoshi is standing somewhere on screen and you enter a pipe (not riding Yoshi), Yoshi will disappear, even with the NMSTL patch. Both on lorom and SA-1. This is an incredibly minor bug and shouldn't be too difficult of a fix. Given how minor it is, this can still be accepted.
Upon moderation, the Pixi routine included didn't insert properly due to faulty label names, so I re-named them and updated the submission file. Quick fix, tested with the carriable triangle sprite.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by codfish1002
Is it recommended i use the moderated version or should i use this one right away, as i don't wanna port to a new rom when this gets rejected for a major issue that can cause problems in hacks


I would say, just use the patch (fixes.asm) of this updated version, so far, doesn't have major issues.

This newer version features “2” versions of map16, an old one and a newer version. The newer version features way more blocks (takes up a total of 2 map16 pages), and are rearranged with most duplicates removed to accommodate a ton of blocks.
codfish1002 From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Is it recommended i use the moderated version or should i use this one right away, as i don't wanna port to a new rom when this gets rejected for a major issue that can cause problems in hacks
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
I realized what the hack is now called, it's Hackers Dreams : Pipe Dream.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
In case if you're wondering, the darken pipes indicate “background” pipes, passable tiles that can be used to connect pipes without separating the level (passable but if you're in pipe mode, will interact with them).

This is also useful for kaizo hacks involving the cap cannons, you can design a level in a way that the player cannot use the upwards-facing cap cannons as platforms but as a 1-use launcher the player has to remain in midair most of the time.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Originally posted by ModernKiwi
Do you plan on making the small pipes compatible with LX5's Mini Mushroom (There's no issues with the other custom powerups, I just want mini mario to be able to enter the small pipes)


Once that gets release, I would. Just that the exiting timers and potentially the centering code may be needed to be modified along with the powerup check (make it so that it forbids small mario (RAM_19=$00)). The last time I tested that, mini mario had the same hitbox as small mario.
ModernKiwi From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Do you plan on making the small pipes compatible with LX5's Mini Mushroom (There's no issues with the other custom powerups, I just want mini mario to be able to enter the small pipes)
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
Oh crud. I'm experencing that the file size is too big. Mods, please put this on hold.
HammerBrother Author From older version: SMB3 Screen Scrolling Pipes 4.0.0 Link
I took an inspiration from the Carryable pipe by WhiteYoshiEgg, image number 10 shows off the screen scrolling warp pipes (SSWP) in action,
PermaBan From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by Jigokusaru
I followed the readme.html to a tee, and when i start a level with a pipe, Mario glitches out and acts as Super Mario, instead of small Mario.


Sounds like you didn't remove test.asm from the list for level 105 in the uberasm list.
Jigokusaru From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I followed the readme.html to a tee, and when i start a level with a pipe, Mario glitches out and acts as Super Mario, instead of small Mario.

HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Some bugs I found that are in this version:
-Turn block bridge that expand vertically (sprite 59) had a faulty restore code:
Code
Sprite_TurnBlockHV_pos:         ;>JML from $01B882
	LDA !Freeram_SSP_PipeDir
	AND.b #%00001111
	BEQ .Restore

	JML $01B8B1

	.Restore
	LDA $0D
	CLC
	ADC #$1F
	JML $01B8B1


Change the red number to $01B887 to fix the issue.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
If these pipes don't work properly, then it's always a freespace conflict unless you improperly modified the blocks or the UberASM code themselves.

I have been frustrated with these pipes for quite a few months, and I cannot stress the following rule of thumb any further: make sure to edit both copies of the defines file in the correct directories, such as the 'blocks' folder in GPS and the same directory your UberASMTool is in. If you have have a copy of the 'SPP_Defines' folder outside those important directories and you replace the defines file there, then surely you're missing something!

And a high recommendation: use this patch to free up a whopping 16 KB of arbitrary freespace, starting from $7F0000 to $7F3FFF. This freespace will thus be safe to use in the long run. Wish you the best of luck! Your frustration with these pipes should now be put to an end!
Thiago678 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by System64
Yours pipes seems good but I have a serious problem with MarioE's Reverse Gravity #tb{D:}

Same.Someone needs to make it compatible with Reverse Gravity.
El Cuh Fermin From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by DKR_02
Originally posted by Fermín Acosta Jr.
I think is incompatible with wall kick
This is compatible with wall kick (I'm assuming you are talking about the wall kick uberasm.) They are probably just using the same freeram


I didn't used the uberasm version, I used patch version.

Edit: Never mind, it works now
DKR_02 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by Fermín Acosta Jr.
I think is incompatible with wall kick
This is compatible with wall kick (I'm assuming you are talking about the wall kick uberasm.) They are probably just using the same freeram
El Cuh Fermin From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I think is incompatible with wall kick
KazakhGuy From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Great!
skyekun From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Edit: I fixed it.
Fusoya's pipes truly are cursed.
Ramenoodles From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
WOW! These are great! Thanks for making these, i really like the fact that they have turn corners for mini-pipes. :)
qantuum From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I don't get why but it is not compatible wih vertical levels. It works smooth in horizontal levels.
iTom33.ro From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by VoxelRoguery
I can't enter ANY of the pipes from the side, but they work up and down?!

Try to apply Fixes.asm
westslasher2 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Here is a fix for the softlock that happens after entering the pipe while dying if anyone wants it.

Just replace this
Code
LDA $71					;\Prevent potential glitch that the player enters pipe and dies
CMP #$09				;|during travel (if freezing enabled, at the same frame the players interacts a pipe cap).
BNE .PipeStateCheck			;|
RTL					;/


with this
Code
.DeathAnimationCheck
LDA $71					;\Prevent potential glitch that the player enters pipe and dies
CMP #$09				;|during travel (if freezing enabled, at the same frame the players interacts a pipe cap).
BNE .PipeStateCheck			;|
.ScreenScrollingPipeHandle
LDA !Freeram_SSP_PipeDir
BEQ .Return

..ResetPipeStatus
LDA #$00
STA !Freeram_SSP_PipeDir		;\Reset pipe state.
STA !Freeram_SSP_PipeTmr		;|
STA !Freeram_SSP_EntrExtFlg		;/
STA !Freeram_SSP_CarrySpr		;\Remove any carryable sprites.
STA !Freeram_BlockedStatBkp		;/
.Return
RTL	



HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by Samuel Zuccati
When using those with retry you can get locked if you die on the same frame you enter a pipe, is there a way I can prevent that?


Ooh, seems that the check:
Code
	LDA $71					;\Prevent potential glitch that the player enters pipe and dies
	CMP #$09				;|during travel (if freezing enabled, at the same frame the players interacts a pipe cap).
	BNE .PipeStateCheck			;|
	RTL					;/

What type of bug are you getting. Did the game first reload the level, and then get locked there? Or did it get locked right when you enter the pipe?
Olga Zuccati From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
When using those with retry you can get locked if you die on the same frame you enter a pipe, is there a way I can prevent that?
Leithen From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Originally posted by foley200
I finally have everything working right apart from the connectors. They show up in map16 as yellow blocks with no detail on them. They don’t load properly although they do function right. Any ideas?


For me this was an issue with the ExGFX settings. I believe BG3 needs to be set to 80, assuming you kept the GFX file name the same.
Xgen_Product From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
this gave me an amazing idea for some graphics... Clear pipes... i just hope that the way you did it was just change the prioty of the blocks to be in front of mario instead of hiding them... but ill find out
BoxedApplePie From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I can't enter ANY of the pipes from the side, but they work up and down?!
foley200 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I finally have everything working right apart from the connectors. They show up in map16 as yellow blocks with no detail on them. They don’t load properly although they do function right. Any ideas?
oizo666 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Hey How do I change "simply change $PPNN (or $PNN)"?
need to put them on page 5. otherwise it works great.
System64 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Yours pipes seems good but I have a serious problem with MarioE's Reverse Gravity #tb{D:}
oderjunks From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
It does not work...
worldpeace From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
I've read your comment regarding the freeram reset issue in retry's comment section. While I'm going to do some small stuff to my patch, for maximum abstraction, I would like to suggest you to modify your part so that the gamemode routine resets those free ram addresses used by pipe when mario's dying ($71 is set to $09). Preferably .ResetStatus could be called (except for STZ $71).
This could also fix the reset issue which could happen when you die in a pipe and use $7Fxxxx as freeram, even if you don't use retry.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Quote
in which they flicker really fast when Mario hits some of the turning tiles


Yeah, I've should noted that on the readme about that. It is very likely to see this flicker for sprites larger than 16x16 (for example: the giant koopa), especially for small screen scrolling pipes. The reason for this is that only the player becomes invisible after the entering animation timer hits zero, the carried sprite remains visible and therefore can “poke” outside the pipe.

And also, thank you for testing and reporting.
 Major Flare From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.14 Link
Aside of the Yoshi bug you mentioned, I caught a tiny bug involving sprites carried through the pipes, in which they flicker really fast when Mario hits some of the turning tiles. Other than that, good job fixing your codes. Despite the bugs I mentioned, I'm willing to accept this as they're minor things, and the Yoshi bug was present in the last hosted version. The change is this the "Fixes" patch works now.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.7 Link
Oh, for the vertical pipes without the middle part, what actually happened is that upon triggering the top caps, the player is teleported downwards so that his timing when he exits isn't off, thankfully this “back-teleporting” isn't too major. I started testing my pipes with the tides and it seems that it doesn't interfere with the pipe traveling, but the water splash graphic happened during the travel, I don't know where is the code that handles the splash sprite when you enter layer 3 tides.
 MarioFanGamer From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.7 Link
For some reason, I had the sentence about the invisible Yoshi unfinished, lol.

I also forgot to write that vertical pipes acts a bit weird if they haven't got a middle part. See the second to last obstacle in the demo level.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.7 Link
I restore the game, reinstall the pipe thing, and found out that the fireball bug can be reproduced if you have freezing disabled.

For the fireball part, I believed the error is caused by this on the uberasm library code (so far, mario actually shoots fireballs while inside the pipe, it maybe a frame-perfect timing to exit the pipe while no fireballs are present on the two slots):
Code
	..ForceControlsSetAndClear
	LDX #$01				;\>Start loop count
	
	...Loop					;|
	LDA $15,x				;|
	ORA SSP_CarryControlsForceSet,y		;|>Force X and Y on controller to be set when carrying sprites.
	AND SSP_CarryControlsForceClear,y	;|>Clear out other than XY and START.
	STA $15,x				;|
	DEX					;|
	BPL ...Loop				;/


Noticed that this sets and clears both $15 and $16. $16 is used for the cape and fireball action. This glitch even happens on cape (it only plays the SFX).

I really don't know how yoshi becomes invisible when setting $78, but when yoshi crouches and faces the screen when entering screen scrolling pipes when you set the value on $7E1419, he still does that even if the player is not mounted on him. This works even on the original game with its exit-enabled pipes. That RAM is used because that also controls how you carry sprites through pipes.
 MarioFanGamer From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.7 Link
Skipped over most of the blocks, lol. They're pretty similar and most of them already but okay. Can't say the same for the UberASM code (which is practically or actually rewritten).

The new addition with the controllable turn corners makes designing the pipes more interesting. It also is a bit similar to FuSoYa's two-way pipes except more flexible and maybe even easier to understand.

The only problem is that Fire Mario drops a fireballs when exiting a pipe (and it even fries any sprite because Mario is considered in the pipe state). The invisible Yoshi glitch also is something to consider (it wouldn't have been as bad if cape and Yoshi weren't aren't affected by the same invisible bit). Maybe adding an option to turn Mario temporarily small à la FuSoYa to fix this problem?
The option to prevent Yoshi entering the pipe also would be nice.
Ralshi02 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
i not can inser the block
Nitrocell Inc. From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Dude, not works.
IHMPRKB123 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
El parche Fixes lo arreglo LOL
The Fixes patch fix it lol
IHMPRKB123 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
No funcionan las tuberías horizontales
The horizontal tubes do not work
mish1 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Do you need to use uberASM? Or Is It just optional to insert the uberASM code?
Luigi_master1 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
I don't think these are compatible with the wall jump patch.
 RPG Hacker From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Mod's note: The patch does what it's supposed to do and seems to do so quite reliably. I tested all of the different pipe combinations in different situations and couldn't find any major problems. The included demonstration level certainly helped with testing, so thanks for that. If you want to use these pipes in your hack, make sure to read readme.txt carefully, as the setup is quite involved.

While I couldn't find any major problems that were severe enough to justify rejection of this submission, I did at least find two minor problems that should be taken a look at whenever considering an update for the pipes.

For the first problem: When entering horizontal pipes, Mario never seemed to play his proper "walking into pipe" animation, unless currently riding Yoshi. He just slides into the pipes. Certainly not a big deal, but for more authenticity, you should consider adding this animation in a future update.

For the second problem: The code is a bit unoptimized in a few places. For example, I found code like this in multiple locations:

Code
	LDA !Freeram_PipeDir	;\set pose according to direction.
	CMP #$01		;|\Vertical direction
	BEQ ....Vert		;||
	CMP #$03		;||
	BEQ ....Vert		;||
	CMP #$05		;||
	BEQ ....Vert		;||
	CMP #$07		;||
	BEQ ....Vert		;|/
	CMP #$02		;|\Horizontal direction
	BEQ ....Horiz		;||
	CMP #$04		;||
	BEQ ....Horiz		;||
	CMP #$06		;||
	BEQ ....Horiz		;||
	CMP #$08		;||
	BEQ ....Horiz		;//


Consider rewriting the code like this to save cycles and bytes:

Code
	LDA !Freeram_PipeDir
	AND #$01
	BEQ ....Horiz

....Vert
	; [...]

....Horiz
	; [...]


That being said, none of these problems affects functionality or is a game breaker in my books, that's why I went ahead and accepted the submission, anyways.
Hyperfenix From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
I got an error about an "unknown macro" which was %SmallMarioHitbox.
Queman From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Hmm, could you create a four-way intersection block? That would be amazing. Perhaps 3-way intersections could be supported with controller input to change direction. Maybe with the use of a sprite you could force a direction change, or lack thereof depending on which way you came. So Mario could go down the pipe, get redirected to a P-Switch Dispenser room on the left, then going back in the pipe from the Switch room he would be directed the rest of the way down. You could have different redirects for each direction, based on what sprite data was set.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
You probably forgot to remove the INC $19 code in the test files of uberasm tools. Also be careful that you don't reuse RAM that is currently used by non-screen scrolling pipes related code.
Luigi_master1 From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
I still can't figure out how to use these, every time I try the horizontal pipes work fine, but in level 105 Mario keeps flashing through different invalid powerup states (which means glitched palette), and the pipes themselves act weird, like if there's a bend the screen scrolls the way Mario entered forever. Might post a gif or a video of it soon.
worldpeace From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Thanks for the useful blocks!

I observed that the program bank was not equal to the data bank in routines/SmallBlockHitbox.asm, and the blocks changing the directions didn't work properly. You may want to use LDA.l to access the table (maybe in some other block codes too).

When mario enters or exits from a pipe, sprites(especially ones consisting of multiple tiles) won't be drawn correctly, even with the NMSTL patch. This can be resolved by setting the value of $13F9 to #$02, instead of #$01.
C4RL0S-PR From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
thanks for this update now I can use your pipes.
Konata Izumi From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
uses uberasm?
C4RL0S-PR From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
Can You Make A Video Tutorial Of How To Install, I'm Stock At the uberASM thing.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
There should be a code somewhere in the springboard, hijack it to check if the pipe freeram is set, if true, don't set those RAMs.
SkywinDragoon From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Springboard clears $1471, and $72 at the last moment of jumping.
It will let Mario to enter the pipe, and glitch like below.
I didn't come up with the best solution, but for right now, just add code so pipes will not let Mario in when he has upward speed.

like..
LDA $7D
BMI return
SkywinDragoon From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link

I think I found a bug maybe?
I used one of the old versions so I am not sure.
However, this is fatal, because it causes game crash. (not glitchy but pauses forever)
Could you verify this and possibly fix it please?
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Whoops. Looks like I was mistaken.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes 3.2.1 Link
Oh great, I was gonna use the SA-1 compatible ver. 3.0.
I'm not gonna use THIS 'cuz you konw. No sa-1 tag, thus no SA-1 usability.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
Originally posted by jesus
Hi again,

I found another glitch in your scrolling pipes code, and thought you might want to know. The issue occurs when you try to enter a horizontal pipe while standing on any downward-moving sprite platforms. You can enter them if you press jump at the perfect time, but this is rather counter-intuitive and goes against how the vanilla pipes behave.

Thanks again for the cool patch/blocks.


Don't place sprite platform near pipes.
JackTheSpades From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
Yay, I don't have to organize stuff in subfolders on my own anymore.
Everything else seems unedited and inserted just fine.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
Will convert the blocks Sa-1 if Sa-1 GPS released.
Galeth From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
I tried with FuSoYa's pipes before, but it didn't actually work. I remember that I made something like this just by setting a secondary entrance that leads to the other end of the pipe. Some homemade stuff while waiting for a fixed version of this.
Chillah From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
It's great that these are actually implemented as blocks rather than patches. Also, this is really neat and useful. It would work really nicely for transporting the player across the map easily. Also great for puzzles.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
Thanks.
DiscoTheBat From older version: GreenHammerBro's SMB3 screen scrolling pipes Link
I like the concept of screen scrolling pipes rather than patches.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
Hello? I said the uberASM code doesn't seem to work. When I enter it, it just becomes non-solid and play the pipe sound at the same time.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
Hello? I said the uberASM code doesn't seem to work. When I enter it, it just becomes non-solid and play the pipe sound at the same time. Also can you make this SA-1 compatible?
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
Note that this doesn't work on layer 2 levels.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
I can't insert this in my hack. Sure, I can insert the blocks but when I put the code in gamemode_14, save it and insert it, the code doesn't seem to work. Am I supposed to set the gamemode hijack to !false? Cause I really want to use ASM in my hack.
Anas From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
I can't insert this in my hack. Sure, I can insert the blocks but when I put the code in gamemode_14, save it and insert it, the code doesn't seem to work. Am I supposed to set the gamemode hijack to !false? Cause I really want to use ASM in my hack.
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
Did you change he freeram in the defs file?
DJfour7 From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
I have a problem, when I try to insert the blocks it says "blocks/top_vertical_pipe_cap_L.asm:30: error: Relative branch out of bounds (distance is 137) [BCS return]".

I did not modify that file at all, so I'm just wondering what could be the problem here. (For extra info, this only started happening when I remembered to set the freespace in the uberASM file and the pipe_defs.txt file.)
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
@Kaisaan Siddiqui

It should work, if you select freeram that isn't used by other stuff, you should be fine.

@[everyone]

It doesn't need exit tiles in front of the pipe caps, as the caps themselves do the exit timer, that means you can put any tile in front and it won't glitch your pipes.
Kaisaan From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
So now this can work on an unclean rom?
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
@MarkD

I'm not sure, I tested this on a edited level rom (so LM adds stuff to it).
MarkVD100 From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
It looks great, it's kinda hard to use this thing. The readme is too confusing for me.

Also, does this require an unedited ROM to do this?
HammerBrother Author From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
@Erik557
Fixed typo.
 Erik From older version: GreenHammerBro's SMB3 screen scrolling pipes (latest version) Link
who is mairo