FuSoYa's pipes patch wasn't compatible with Gopher Popcorn Stew, so I uploaded my own.
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 block at once just by copying whats 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.
see the readme for details.
-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 or a ram address for "!pipe_dir" is a non-zero, then skip/return, because mario will then rise up slowly while traveling through horizontal pipes.
-If you have converted ram address (and modify the GPS tool) to be compatable with sa-1, you also have to convert the "sprite slot loop" to use 22 slots. Because SA-1 has updated the number of slots from 12 to 22, otherwise yoshi glitches up.
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:
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 ;|
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?
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
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.
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.
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.