User Tools

Site Tools


notes:atari:gtia

Atari GTIA/CTIA

Hardware registers and memory locations related to GTIA/CTIA ($D000 to $D0FF).

Hardware Registers

write-only

; horizontal positions of players and missiles (53248-53255)
HPOSP0  = $D000 ; horizontal position, player 0
HPOSP1  = $D001 ; horizontal position, player 1
HPOSP2  = $D002 ; horizontal position, player 2
HPOSP3  = $D003 ; horizontal position, player 3
HPOSM0  = $D004 ; horizontal position, missile 0
HPOSM1  = $D005 ; horizontal position, missile 1
HPOSM2  = $D006 ; horizontal position, missile 2
HPOSM3  = $D007 ; horizontal position, missile 3
 
; sizes of players and missiles (53256-53260)
SIZEP0  = $D008 ; size, player 0
SIZEP1  = $D009 ; size, player 1
SIZEP2  = $D00A ; size, player 2
SIZEP3  = $D00B ; size, player 3
SIZEM   = $D00C ; size, all missiles
 
; direct graphics for players and missiles (53261-53264)
GRAFP0  = $D00D ; graphics, player 0
GRAFP1  = $D00E ; graphics, player 1
GRAFP2  = $D00F ; graphics, player 2
GRAFP3  = $D010 ; graphics, player 3
GRAFM   = $D011 ; graphics, all missiles
 
; color and luminance of players and missiles (53266-53269)
COLPM0  = $D012 ; color, player 0 and missile 0
COLPM1  = $D013 ; color, player 1 and missile 1
COLPM2  = $D014 ; color, player 2 and missile 2
COLPM3  = $D015 ; color, player 3 and missile 3
 
; color and luminance of playfield and background (53270-53274)
COLPF0  = $D016 ; color, playfield 0
COLPF1  = $D017 ; color, playfield 1
COLPF2  = $D018 ; color, playfield 2
COLPF3  = $D018 ; color, playfield 3
COLBK   = $D01A ; color, background
 
; other registers (57275-53278)
PRIOR   = $D01B ; priority selection, fifth player, GTIA modes
VDELAY  = $D01C ; vertical delay
GRACTL  = $D01D ; enable/disable player/missile graphics, latch trigger inputs
HITCLR  = $D01E ; collision clear

read-only

; player/missile collisions (53248-53263)
M0PF    = $D000 ; missile 0 to playfield collision
M1PF    = $D001 ; missile 1 to playfield collision
M2PF    = $D002 ; missile 2 to playfield collision
M3PF    = $D003 ; missile 3 to playfield collision
P0PF    = $D004 ; player 0 to playfield collision
P1PF    = $D005 ; player 1 to playfield collision
P2PF    = $D006 ; player 2 to playfield collision
P3PF    = $D007 ; player 3 to playfield collision
M0PL    = $D008 ; missile 0 to player collision
M1PL    = $D009 ; missile 1 to player collision
M2PL    = $D00A ; missile 2 to player collision
M3PL    = $D00B ; missile 3 to player collision
P0PL    = $D00C ; player 0 to player collision
P1PL    = $D00D ; player 1 to player collision
P2PL    = $D00E ; player 2 to player collision
P3PL    = $D00F ; player 3 to player collision
 
; joystick (53264-53267)
TRIG0   = $D010 ; joystick trigger 0 (shadow 644)
TRIG1   = $D011 ; joystick trigger 1 (shadow 645)
TRIG2   = $D012 ; joystick trigger 2 (shadow 646)
TRIG3   = $D013 ; joystick trigger 3 (shadow 647)
 
; other registers (53268)
PAL     = $D014 ; PAL/NTSC indicator

read/write

; the status of OPTION, START, and SELECT keys (53279)
CONSOL  = $D01F ; console keys	

Shadow Registers

; shadow registers of $D012-$D015 (704-707)  
COLPM0	= $02C0 ; color, player 0 and missile 0 (=PCOLR0)
COLPM1  = $02C1 ; color, player 1 and missile 1 (=PCOLR1)
COLPM2  = $02C2	; color, player 2 and missile 2 (=PCOLR2)
COLPM3  = $02C3	; color, player 3 and missile 3 (=PCOLR3)
 
; shadow registers of $D016-$D01A (708-712)
COLOR0  = $02C4 ; color, playfield 0 (=COLPF0S)
COLOR1  = $02C5 ; color, playfield 1 (=COLPF1S)
COLOR2  = $02C6 ; color, playfield 2 (=COLPF2S)
COLOR3  = $02C7 ; color, playfield 3 (=COLPF3S)
COLOR4  = $02C8 ; color, background (=COLBAK)
notes/atari/gtia.txt · Last modified: 2017/12/12 by leszek