Buenas.
Yo esto aprendí a hacerlo leyendo el propio manual de BASIC del C64. Viene este programa donde se muestra cómo activar un Sprite de forma sencilla:
[code]1 REM UP, UP, AND AWAY
5 PRINT "(CLR/HOME)"
10 V = 53248 : REM START OF DISPLAY CHIP
11 POKE V + 21,4 : REM ENABLE SPRITE 2
12 POKE 2042,13 : REM SPRITE 2 DATA FROM BLOCK 13
20 FOR N = 0 TO 62 : READ Q : POKE 832+N,Q : NEXT
30 FOR X = 0 TO 200
40 POKE V + 4,X : REM UPDATE X COORDINATES
50 POKE V + 5,X : REM UPDATE Y COORDINATES
60 NEXT X
70 GOTO 30
200 DATA 0,127,0,1,255,192,3,255,224,3,231,224
210 DATA 7,217,240,7,223,240,7,217,240,3,231,224
220 DATA 3,255,224,3,255,224,2,255,160,1,127,64
230 DATA 1,62,64,0,156,128,0,156,128,0,73,0,0,73,0
240 DATA 0,62,0,0,62,0,0,62,0,0,28,0[/quote]
Hay que saber esto, y poco más:
REGISTER No. DESCRIPTION
0-15 SPRITE POSITIONING
16 EXTRA MOVEMENT
21 ENABLE (ON/OFF)
23 EXPAND (VERTICAL)
27 PRIORITIES
28 MULTI-COLOR SELECT
29 EXPAND (HORIZONTAL)
37-38 MULTI-COLORS
39-46 COLOR
[...]They start at location 53248. This is the 'base address' of the VIC II chip. To access individual registers, it is easier to assign a variable with the value of the start address and then add the register number to it, e.g. V=53248: POKE V+21,255. This will put the value of 255 into register 21.
Para más información:
http://www.lemon64.com/manual/ , capítulo 7.