gbdev / pandocs

The single, most comprehensive Game Boy technical reference.
https://gbdev.io/pandocs/
Creative Commons Zero v1.0 Universal
594 stars 92 forks source link

Get Tile step during the FIFO needs correction / improvement #377

Open datapaganism opened 2 years ago

datapaganism commented 2 years ago

If the current tile is a window tile, the X coordinate for the window tile is used, otherwise the following formula is used to calculate the X coordinate: ((SCX / 8) + fetcher’s X coordinate) & $1F. Because of this formula, fetcherX can be between 0 and 31.

fetcher's X and fetcherX are too similar and cause confusion.

Suggestion : rename fetcher's X coordinate to X_tile_number or something similar. Also provide a range, since it is not inferred from the variable name, i.e. 0 - 31 (fetcher's X advances once every 8 pixel fetch).

If the current tile is a window tile, the Y coordinate for the window tile is used, otherwise the following formula is used to calculate the Y coordinate: (currentScanline + SCY) & 255. Because of this formula, fetcherY can be between 0 and 159.

currentScanline (same as LY?) ranges between 0 - 143 (visable), SCY ranges between 0 - 255, fetcherY therefore must be between 0 and 255 instead of 159.

Suggestion : change the range of fetcherY

ISSOtm commented 2 years ago

Note: being covered by my reworking of this article.