Scrolling


What Modules Use Scrolling?
Input Scripts

Let’s start with a quick definition. Scrolling the screen means that the background is moving in any direction, as opposed to games that has a static screen like Donkey Kong, Pac Man or Space Invaders.

In NESmaker we basically have three different ways to scroll the screen. The first is scrolling from left to right (the background will move to the left), but not back again. So in other words, only scrolling in one direction. The second is two-way scrolling, where the screen can scroll both left and right. The last one is auto-scrolling from left to right. Then there are some modules in NESmaker that don’t scroll at all.

What Modules Use Scrolling?

Here are the different modules in NESmaker and how they handle scrolling:

  • Adventure: No scrolling
  • Arcade Platformer: No scrolling
  • Brawler: Scrolling from left to right
  • Shooter: Auto-scrolling from left to right
  • LR Platformer: Scrolling from left to right
  • Maze: No scrolling
  • MetroVania: Scrolling in both directions

PS! NESmaker 4.5.9 is not set up to handle vertical scrolling.

Input Scripts

Except for the Shooter module, scrolling is handled in the input scripts. In the folder for the Platformer module (MOD_PlatformerBase) you will find the input scripts folder that contains the three input scripts to handle scrolling. These three scripts are:

  • do_simpleScrollLeft.asm
  • do_simpleScrollRight.asm
  • do_stopScrolling.asm

Here is an example on how input scripts are handled in the MetroVania module:

On the NESmaker forum there is a tutorial on how you can set up a different camera handler in NESmaker. What that means for you as a developer is that you don’t have to worry about input scripts for scrolling. However, it is important to know that this tutorial was made for the MetroVania module and might not work correctly if you try to apply it to another module. This tutorial is called Let’s improve scrolling together! If you plan to make a game with the MetroVania module I highly recommend this tutorial which is very simple to implement. I also recommend combining that tutorial with another one to use Simplified Input Scripts.