Background Scrolling Data Info

TODO:
- Verify info for BG start position nybble — 0x2 and 0x3 in particular.
- How specifically do "Disable vertical scrolling" and "Automatic horizontal scrolling" work? What all do bytes 13 and 16 do?
- Might be nice to list which BG speeds and such are all used.

Foregrounds and backgrounds scroll differently in many levels  sometimes they have a fast speed ratio and sometimes they can be completely static. This can be adjusted by hex editing your level.

NSMBe screenshot of the level hex editor open to block 5. The leftmost nybbles of byte 11 and 13 are labeled as "BG starting position" while the rightmost nybbles are labeled as "Speed".

And for each byte:

(Image source: MarioSunshine)

Start position and loop data

Any value higher than 0x5 freezes the game.

Scroll speed data

Table address in overlay 0: 0x0002F468
Table address in memory: 0x020C7B48

(Source: RoadrunnerWMC)

Disabling vertical scrolling

(Source: MeroMero)

Automatic horizontal scrolling

Works for any background that already has parallax scrolling. This can be achieved by putting a value of 0x10 for byte 16 and it will scroll the whole background instead of only some of it.
(Note: if byte 13 value is somewhere between 0x40 and 0x4F, this effect will be overridden and instead the vertical scrolling will be disabled).
(Source: MeroMero)

Revision #6
Created 17 October 2024 15:25:06 by Mr. Ztardust
Updated 14 April 2025 16:11:02 by keeper