GBDK 2020 Docs  4.1.1
API Documentation for GBDK 2020
hardware.h File Reference
#include <types.h>

Go to the source code of this file.

Macros

#define __BYTES   extern UBYTE
 
#define __BYTE_REG   extern volatile UBYTE
 
#define PPUCTRL   ((uint8_t*)0x2000);
 
#define PPUCTRL_NMI   0b10000000
 
#define PPUCTRL_SPR_8X8   0b00000000
 
#define PPUCTRL_SPR_8X16   0b00100000
 
#define PPUCTRL_BG_CHR   0b00010000
 
#define PPUCTRL_SPR_CHR   0b00001000
 
#define PPUCTRL_INC32   0b00000100
 
#define PPUMASK   ((uint8_t*)0x2001);
 
#define PPUMASK_BLUE   0b10000000
 
#define PPUMASK_RED   0b01000000
 
#define PPUMASK_GREEN   0b00100000
 
#define PPUMASK_SHOW_SPR   0b00010000
 
#define PPUMASK_SHOW_BG   0b00001000
 
#define PPUMASK_SHOW_SPR_LC   0b00000100
 
#define PPUMASK_SHOW_BG_LC   0b00000010
 
#define PPUMASK_MONOCHROME   0b00000001
 
#define PPUSTATUS   ((uint8_t*)0x2002);
 
#define OAMADDR   ((uint8_t*)0x2003);
 
#define OAMDATA   ((uint8_t*)0x2004);
 
#define PPUSCROLL   ((uint8_t*)0x2005);
 
#define PPUADDR   ((uint8_t*)0x2006);
 
#define PPUDATA   ((uint8_t*)0x2007);
 
#define OAMDMA   ((uint8_t*)0x4014);
 
#define DEVICE_SCREEN_X_OFFSET   0
 
#define DEVICE_SCREEN_Y_OFFSET   0
 
#define DEVICE_SCREEN_WIDTH   32
 
#define DEVICE_SCREEN_HEIGHT   30
 
#define DEVICE_SCREEN_BUFFER_WIDTH   32
 
#define DEVICE_SCREEN_BUFFER_HEIGHT   30
 
#define DEVICE_SCREEN_MAP_ENTRY_SIZE   2
 
#define DEVICE_SPRITE_PX_OFFSET_X   0
 
#define DEVICE_SPRITE_PX_OFFSET_Y   -1
 
#define DEVICE_WINDOW_PX_OFFSET_X   0
 
#define DEVICE_WINDOW_PX_OFFSET_Y   0
 
#define DEVICE_SCREEN_PX_WIDTH   (DEVICE_SCREEN_WIDTH * 8)
 
#define DEVICE_SCREEN_PX_HEIGHT   (DEVICE_SCREEN_HEIGHT * 8)
 

Variables

volatile UBYTE shadow_PPUCTRL
 
volatile UBYTE shadow_PPUMASK
 
volatile UBYTE bkg_scroll_x
 
volatile UBYTE bkg_scroll_y
 

Detailed Description

Defines that let the NES hardware registers be accessed from C.

Macro Definition Documentation

◆ __BYTES

#define __BYTES   extern UBYTE

◆ __BYTE_REG

#define __BYTE_REG   extern volatile UBYTE

◆ PPUCTRL

#define PPUCTRL   ((uint8_t*)0x2000);

◆ PPUCTRL_NMI

#define PPUCTRL_NMI   0b10000000

◆ PPUCTRL_SPR_8X8

#define PPUCTRL_SPR_8X8   0b00000000

◆ PPUCTRL_SPR_8X16

#define PPUCTRL_SPR_8X16   0b00100000

◆ PPUCTRL_BG_CHR

#define PPUCTRL_BG_CHR   0b00010000

◆ PPUCTRL_SPR_CHR

#define PPUCTRL_SPR_CHR   0b00001000

◆ PPUCTRL_INC32

#define PPUCTRL_INC32   0b00000100

◆ PPUMASK

#define PPUMASK   ((uint8_t*)0x2001);

◆ PPUMASK_BLUE

#define PPUMASK_BLUE   0b10000000

◆ PPUMASK_RED

#define PPUMASK_RED   0b01000000

◆ PPUMASK_GREEN

#define PPUMASK_GREEN   0b00100000

◆ PPUMASK_SHOW_SPR

#define PPUMASK_SHOW_SPR   0b00010000

◆ PPUMASK_SHOW_BG

#define PPUMASK_SHOW_BG   0b00001000

◆ PPUMASK_SHOW_SPR_LC

#define PPUMASK_SHOW_SPR_LC   0b00000100

◆ PPUMASK_SHOW_BG_LC

#define PPUMASK_SHOW_BG_LC   0b00000010

◆ PPUMASK_MONOCHROME

#define PPUMASK_MONOCHROME   0b00000001

◆ PPUSTATUS

#define PPUSTATUS   ((uint8_t*)0x2002);

◆ OAMADDR

#define OAMADDR   ((uint8_t*)0x2003);

◆ OAMDATA

#define OAMDATA   ((uint8_t*)0x2004);

◆ PPUSCROLL

#define PPUSCROLL   ((uint8_t*)0x2005);

◆ PPUADDR

#define PPUADDR   ((uint8_t*)0x2006);

◆ PPUDATA

#define PPUDATA   ((uint8_t*)0x2007);

◆ OAMDMA

#define OAMDMA   ((uint8_t*)0x4014);

◆ DEVICE_SCREEN_X_OFFSET

#define DEVICE_SCREEN_X_OFFSET   0

◆ DEVICE_SCREEN_Y_OFFSET

#define DEVICE_SCREEN_Y_OFFSET   0

◆ DEVICE_SCREEN_WIDTH

#define DEVICE_SCREEN_WIDTH   32

◆ DEVICE_SCREEN_HEIGHT

#define DEVICE_SCREEN_HEIGHT   30

◆ DEVICE_SCREEN_BUFFER_WIDTH

#define DEVICE_SCREEN_BUFFER_WIDTH   32

◆ DEVICE_SCREEN_BUFFER_HEIGHT

#define DEVICE_SCREEN_BUFFER_HEIGHT   30

◆ DEVICE_SCREEN_MAP_ENTRY_SIZE

#define DEVICE_SCREEN_MAP_ENTRY_SIZE   2

◆ DEVICE_SPRITE_PX_OFFSET_X

#define DEVICE_SPRITE_PX_OFFSET_X   0

◆ DEVICE_SPRITE_PX_OFFSET_Y

#define DEVICE_SPRITE_PX_OFFSET_Y   -1

◆ DEVICE_WINDOW_PX_OFFSET_X

#define DEVICE_WINDOW_PX_OFFSET_X   0

◆ DEVICE_WINDOW_PX_OFFSET_Y

#define DEVICE_WINDOW_PX_OFFSET_Y   0

◆ DEVICE_SCREEN_PX_WIDTH

#define DEVICE_SCREEN_PX_WIDTH   (DEVICE_SCREEN_WIDTH * 8)

◆ DEVICE_SCREEN_PX_HEIGHT

#define DEVICE_SCREEN_PX_HEIGHT   (DEVICE_SCREEN_HEIGHT * 8)

Variable Documentation

◆ shadow_PPUCTRL

volatile UBYTE shadow_PPUCTRL

◆ shadow_PPUMASK

volatile UBYTE shadow_PPUMASK

◆ bkg_scroll_x

volatile UBYTE bkg_scroll_x

◆ bkg_scroll_y

volatile UBYTE bkg_scroll_y