Chip8

Hierarchy

  • Chip8

Constructors

Properties

FREQUENCY: number = 60

Instruction set

MEMORY_SIZE: number = 4096
NUMBER_OF_KEYS: number = 16
PROGRAM_START_ADDRESS: number = 0x200
REGISTERS: number = 16
SCREEN_HEIGHT: number = 32
SCREEN_WIDTH: number = 64
STACK_SIZE: number = 16
STEPS_PER_CYCLE: number = 10
V: Uint8Array

Registers: V0 to VF

cycleCounter: number

Cycle counter (used for debug)

delayTimer: number

Delay timer

i: number

Address register

keys: Uint8Array

Keys array

memory: Uint8Array

Memory Layout: 0x000-0x1FF - Chip 8 interpreter (contains font set in emu) 0x050-0x0A0 - Used for the built in 4x5 pixel font set (0-F) 0x200-0xFFF - Program ROM and work RAM

onPlaySound?: (() => void)

Type declaration

    • (): void
    • Play sound event emitter

      Returns void

onRedraw?: (() => void)

Type declaration

    • (): void
    • Redraw event emitter

      Returns void

onStopSound?: (() => void)

Type declaration

    • (): void
    • Stop sound event emitter

      Returns void

pc: number

Program counter

quirks: {
    loadStore: boolean;
    shift: boolean;
}

Known "quirks"

Type declaration

  • loadStore: boolean
  • shift: boolean
redraw: boolean

Redraw screen flag

requestAnimationFrameHandle: number

window.requestAnimationFrame handle

requestInputUpdate: TypedEvent<void> = ...

Request app to update inputs

screen: Uint8Array

Screen array

soundTimer: number

Sound timer

stack: Uint16Array

Stack array

stackPointer: number

Stack pointer

stepCounter: number

Step counter (used for debug)

timeoutHandle: Timeout

CPU run timeout handle

Methods

  • Execute opcode

    Parameters

    • opcode: number

    Returns void

  • Fetchs next opcode

    Returns number

    next opcode (2 bytes)

  • Fetches N symbol

    Parameters

    • opcode: number

    Returns number

    N symbol (0x000N)

  • Fetches NN symbol

    Parameters

    • opcode: number

    Returns number

    NN symbol (0x00NN)

  • Fetches NNN symbol

    Parameters

    • opcode: number

    Returns number

    N symbol (0x0NNN)

  • Fetches X symbol

    Parameters

    • opcode: number

    Returns number

    X symbol (0x0X00)

  • Fetches Y symbol

    Parameters

    • opcode: number

    Returns number

    Y symbol (0x00Y0)

  • Load data to memory

    Parameters

    • data: Uint8Array
    • start: number

    Returns void

  • Load rom data

    Parameters

    • buffer: Uint8Array

    Returns void

Generated using TypeDoc