Sprites.Platform.GameBoy

The Game Boy platform pack: the machine's shared colours, its sprite constants under Sprite, its font constants under Font, and its tile map constants under Map. Four DMG greens, sprites built from 8×8 tiles, no ROM font, and a 32×32 wrapping background map.

Sprites.Platform.GameBoy

Sprite

Font

Map

Sequencer

Sprites.Platform.GameBoy.Name String

The machine's display name.

"Game Boy"

Sprites.Platform.GameBoy.Palette Array

The machine's fixed colours, as packed 0xRRGGBBAA integers, the set a slot may be recoloured from.

[
  0x0f380fff,
  0x306230ff,
  0x8bac0fff,
  0x9bbc0fff
]

Sprites.Platform.GameBoy.Sprite.Slots Array

The colours the editor starts on, one a slot.

[
  0x0f380fff,
  0x306230ff,
  0x8bac0fff,
  0x9bbc0fff
]

Sprites.Platform.GameBoy.Sprite.Modes Array

The sprite modes, in the order the Info window lists them. Each sets a colour count, a pixel aspect and a size rule.

NameColoursPixel aspectSize
Sprite41widths 8, 16, 24, 32; heights 8, 16, 24, 32
[
  { "name": "Sprite", "colours": 4, "pixelAspect": 1, "allowedWidths": [8, 16, 24, 32], "allowedHeights": [8, 16, 24, 32] }
]

Sprites.Platform.GameBoy.Sprite.DefaultWidth Number

The sprite width the editor opens on.

8

Sprites.Platform.GameBoy.Sprite.DefaultHeight Number

The sprite height the editor opens on.

8

Sprites.Platform.GameBoy.Font.Charsets Array

The machine's built-in character sets, each a font object of name, cell size and glyphs. The Game Boy has none in ROM: on-screen text is drawn from ordinary tiles the game supplies, so this list is empty and Font.DefaultFont is undefined. See the Game Boy font page.

[]

Sprites.Platform.GameBoy.Font.DefaultWidth Number

The glyph cell width in pixels of the default font. Zero: the Game Boy has no ROM font.

0

Sprites.Platform.GameBoy.Font.DefaultHeight Number

The glyph cell height in pixels of the default font. Zero: the Game Boy has no ROM font.

0

Sprites.Platform.GameBoy.Font.CharStart Number

The first glyph code. Zero: no default font.

0

Sprites.Platform.GameBoy.Font.CharCount Number

The glyph count. Zero: no default font.

0

Sprites.Platform.GameBoy.Font.DefaultFont Object

Null: the Game Boy has no ROM text font, so there is no built-in character set. On-screen text is drawn from ordinary 8×8 tiles the game supplies. See the Game Boy font page.

null

Sprites.Platform.GameBoy.Map.TileWidth Number

The width in pixels of one map tile, the size-locked cell each background index is drawn at.

8

Sprites.Platform.GameBoy.Map.TileHeight Number

The height in pixels of one map tile, the size-locked cell each background index is drawn at.

8

Sprites.Platform.GameBoy.Map.ScreenWidth Number

The visible width in tiles, the 20 columns the DMG screen shows. A new map defaults to this size.

20

Sprites.Platform.GameBoy.Map.ScreenHeight Number

The visible height in tiles, the 18 rows the DMG screen shows. A new map defaults to this size.

18

Sprites.Platform.GameBoy.Map.HardwareWidth Number

The width in tiles of the hardware tilemap, 32 columns that wrap, through which a larger world streams.

32

Sprites.Platform.GameBoy.Map.HardwareHeight Number

The height in tiles of the hardware tilemap, 32 rows that wrap, through which a larger world streams.

32

Sprites.Platform.GameBoy.Map.MaxWidth Number

The largest map width in tiles the editor allows, the world that streams through the wrapping hardware map.

1024

Sprites.Platform.GameBoy.Map.MaxHeight Number

The largest map height in tiles the editor allows, the world that streams through the wrapping hardware map.

1024

Sprites.Platform.GameBoy.Map.Modes Array

The map modes, in the order the Info window lists them. The Game Boy has one, Background: 256 tiles, four shades from the single background palette, no per cell attributes, and a Background and Window layer. The tile field is the size-locked sprite mode a tile is drawn in, an 8×8 tile of four shades.

NameTilesColoursPalettesAttributesLayers
Background25641none2
[
  { "name": "Background", "tiles": 256, "colours": 4, "palettes": 1, "paletteSize": 4, "attributes": "none", "layers": 2, "tile": { "name": "Tile", "colours": 4, "transparent": true, "pixelAspect": 1, "allowedSizes": [[8, 8]] } }
]

Sprites.Platform.GameBoy.Sequencer Object

The sequencer channel model for the Game Boy sound unit: a pulse channel with sweep, a plain pulse channel, a wavetable channel and a noise channel, each a distinct type with per-channel panning, described as address-free capabilities with value ranges. The Sprites.Media.Sequencer editor reads this to lay out the grid and gate what each channel can do. Registers are on the Game Boy audio page; here only value ranges matter.

{
  name: 'Game Boy',
  channelTypes: {
    pulseSweep: { capabilities: {
      pitch:    { mode: 'latched', notes: ['C1', 'C8'], finetune: false },
      volume:   { mode: 'latched', level: { bits: 4 } },
      duty:     { mode: 'latched', width: { values: [12.5, 25, 50, 75] } },
      envelope: { mode: 'latched', type: 'decay', start: { bits: 4 }, period: { bits: 3 } },
      sweep:    { mode: 'latched', rate: { bits: 3 }, shift: { bits: 3 } },
      pan:      { mode: 'latched', position: { options: ['left', 'right', 'both'] } }
    } },
    pulse: { capabilities: {
      pitch:    { mode: 'latched', notes: ['C1', 'C8'], finetune: false },
      volume:   { mode: 'latched', level: { bits: 4 } },
      duty:     { mode: 'latched', width: { values: [12.5, 25, 50, 75] } },
      envelope: { mode: 'latched', type: 'decay', start: { bits: 4 }, period: { bits: 3 } },
      pan:      { mode: 'latched', position: { options: ['left', 'right', 'both'] } }
    } },
    wave: { capabilities: {
      pitch:     { mode: 'latched', notes: ['C1', 'C8'], finetune: false },
      volume:    { mode: 'latched', level: { values: [0, 25, 50, 100] } },
      wavetable: { mode: 'latched', size: 32, depth: { bits: 4 } },
      pan:       { mode: 'latched', position: { options: ['left', 'right', 'both'] } }
    } },
    noise: { capabilities: {
      noise:    { mode: 'latched', rate: { bits: 3 }, modes: ['15-bit', '7-bit'] },
      volume:   { mode: 'latched', level: { bits: 4 } },
      envelope: { mode: 'latched', type: 'decay', start: { bits: 4 }, period: { bits: 3 } },
      pan:      { mode: 'latched', position: { options: ['left', 'right', 'both'] } }
    } }
  },
  channels: [ { type: 'pulseSweep' }, { type: 'pulse' }, { type: 'wave' }, { type: 'noise' } ],
  effects: ['arpeggio', 'portamento', 'vibrato', 'tremolo', 'volumeSlide']
}