This code allows you to create your own special autoscroll that goes where you want at the speed you want, much like the generator used in Butter Bridge 1 (level 00C) in the original game.
It works by using tables where you store X/Y speeds for each step of the autoscroll. It allows the use of fractional speeds and can be paused/resumed anytime you want using a flag. Plus, all the free RAM used can be easily changed to avoid conflicts, and the whole scrolling code can either stop or loop when it reaches the end of the tables.
UPDATE: You can now setup a custom code that will interrupt the autoscroll and be executed at certain points in time. This way, you force the player to progress only if a certain thing has been done.
Default code is the classic "advance if all sprites have been killed".
This does not work for Lunar Magic 3.00+, the !Timer variable uses an address commandeered by Lunar magic in that version. Errors involving layer 1 and 2 misplacement can occur. This can be fixed by switching $1936 to $13E6.