Experimental and Non-game modes

From Uzebox Wiki
Jump to navigation Jump to search

These are video modes which either have uncommon use-cases, not necessarily suitable for common games, or they are experimental or abandoned, but possibly useful.

Mode 7

Alt text
Mode 7 Example - Movie Player

Mode 7 is a video player. It plays uncompressed full screen movies at 30FPS with sound.

  • 170x114 (147x114 effective) resolution, 30fps
  • 256 colors per pixel
  • Sound at 15.7Khz
  • no scrolling
  • no sprites
  • CPU cycles left: low
  • RAM consumption: low
  • Program memory consumption: medium

Video Mode 7 Implementation Details

Mode 11

NOTE: This mode is a current work-in-progress.

Palette video mode 3 / Flash/RAM saver video mode 3 / Platformer video mode 3

  • 240x224 resolution, flexible 16x4/8x8 pixel tiles, up to 32x32 vram
  • Palette support for 16x4 tile lines, either 16 colors without or 136 colors with additional restrictions.
  • 8 bit vram array, each entry is an index into a 256 tiles table
  • Up to 4 different tilesets, one selectable for each 8x8/each two 16x4 pixel lines.
  • full screen scrolling
  • 1 scrolling main section and 1 static overlay section for scores, etc.
  • configurable number of sprites using 'ramtiles', sprites can be flipped on the X axis and can be overlaid on other sprites. With the 4K RAM & CPU limit, about 20 sprites can be displayed at once. Aggregated sprites will allow a bigger total sprites count to to the tiles overlapping required when blitting sprites which position are not multiples of 16|4 or 8|8. (see note below about MAX_SPRITES)
  • CPU cycles left: lowest
  • RAM consumption: higher than video mode 3 with direct video sprites, slightly more than half of video mode 3 if sprites are in palette video, too.
  • Program memory consumption: low

See also

Mode 52 WIP

Mode 52 Lisunov Li-2 Demo
Mode 52 Lisunov Li-2 Demo

2 bits per pixel 5 cycles per pixel high-resolution mode currently in development. Check it out from [Jubatian's fork] of the Uzebox repo. The interface of this mode should already be stable. Check the [forum thread] for information!

  • Up to 288 pixels width (36 tiles), 5 cycles per pixel.
  • X and Y scrolling
  • Up to 256 tiles, the count of ROM/RAM tiles within this is arbitrary
  • Color palette can be selected for every tile row, options for loading colors in every scanline
  • Sprite engine supports X and Y flipping and background priority (by masks)
  • Optionally all the 4 colors may be used in a sprite
  • CPU cycles left: Depends on number of sprites used, may need lower vertical sizes for utilizing a lot of RAM tiles
  • RAM consumption: Very low! A RAM tile takes only 16 bytes
  • Program memory consumption: Low to medium depending on required row modes (ROM tiles however are very small at 16 bytes each)

Mode 52 Quickstart, a short guide on how to start working with this video mode.

Mode 72 WIP

Mode 72 example
Mode 72 Example

"Hardware" sprite mode at 7 cycles per pixel, currently in development. Check it out from [Jubatian's fork] of the Uzebox repo. The interface of this mode isn't stable yet, it is just for experimenting. Check the [forum thread] for information!

  • Up to 160 pixels width (7 cycles per pixel), with 2 x 16 pixels wide borders
  • Background X and Y scrolling (including capability for parallax and split effects)
  • The background is code tiled (normally 192 bytes / tile, but supports reusing rows for smaller size)
  • The background has a 16 color palette (including the border color)
  • Any number of sprites in various configurations, up to 8 on a scanline.
  • Sprites (usually) can have 3 colors and transparency
  • 40 tiles (320 pixels) wide 1bpp text mode as top / bottom overlays (Same format as Mode 40)
  • Supports the VSync mixer only (no inline mixer)
  • CPU cycles left: medium-high (only the VSync mixer takes away VBlank time)
  • RAM consumption: low
  • Program memory consumption: medium to very high depending on background complexity

Mode 72 Sprite modes, the possible sprite configurations of this mode.