This patch allows you to change three hardcoded values of the vertical camera scrolling routine on a per-level basis.
It allows you to change the Y-Positions within the screen Mario has to be at in order for the camera to scroll vertically, as well as where to stop the screen relative to Mario when scrolling vertically.
All you have to do is to change some values in BetterVertCamTable.asm , do not change anything inside the other ASM file. Make sure both files are located in the same folder when inserting the patch.
To enhance vertical levels, particularily where you can go only in a single direction (such as in the GIF where Mario falls down).
Functionality: It just works even if usability is a bit difficult, 8/10. A bit difficult to use since you have to get the level right and you probably can get a bit confused about the values.
Code: The code is functional, 4/10. "Functional" doesn't mean "fine" as the code can be improved in a lot of ways. For starters, you don't need two hijacks, a single one is enough if you just store to $55 and $56. Relatedly, switching and restoring the data bank twice is redundant as the code doesn't branch anywhere between the hijacks! In fact, you don't even have to when you can just use X all the time and restore it with $1412 (this also allows the code to be put into banks $40+) afterwards, especially when it isn't even used in the whole code!