Qué mamoncete eres XD
Bueno, llevo rompiéndome la cabeza con el programa unos cuantos días por que no terminaba de funcionar correctamente. Según el nivel y/o la dirección, los coches atravesaban las barreras pasando de los controles y largándose de viaje por toda la memoria del Commodore 64.
Al final era una estupidez
. Siempre es error humano.
Al editar los niveles, resulta ser que hay dos caracteres diferentes numéricamente para la barra horizontal pero idénticos visualmente, el valor #64/$40 y el valor #67/$43. Hice una mezcla de ambos sin darme cuenta. Soy un TOOOOORPEEEE y un grafista muy despistado.
He reescrito el código solucionando otros problemas a la hora de detectar obstáculos. Espero que aparir de ahora, esto se agilice y pueda ir avanzando sin más tropiezos como este.
Lo próximo es hacer desaparecer los testigos de movimiento de los detectores de caracteres y mostrar los sprites moviéndose pixel a pixel siguiendo a los detectores.
¿Para qué detectores?. Pues para poder girar y desplazar el coche prota, contar los puntos comidos, recoger objetos y otras cosillas que se me ocurra implementar, como bombas para romper paredes y acceder a los circuitos laterales cerrados al empezar.
Dejo el código fuente como siempre, por si a alguno le da por estudiarlo y ver los cambios por si me corrige o mejora algo
;Cambiado el sistema de comprobación de obstáculo y solucionado tema gráficos XD.
;CBM PRG Studio 3.10.0
;
;CONSTANTES:
facarg=$bc0c
intfac=$b391
sum=$b86a
res=$b853
mul=$ba2b
div=$bb12
facind=$bc9b
msb=$d010 ;Activar >255 sprites
posprites=$D000
spena=$D015
Posmemspr=$07f8 ;#2040
Joy2= $DC00
nivel=$2F00 ;Variables programa
; 10 SYS (4096)
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
;*******************************************************************************
;*******************************************************************************
*=$1000
;*******************************************************************************
;*******************************************************************************
;Arranque del juego. Puesta a cero de variables:
;LECTURA DE PANTALLAS.
;Puesta a cero de lectura de niveles.
lda #<SCR ;Lo Lectura pantallas
sta Lect0+1
lda #>SCR ;Hi lectura pantallas
sta Lect0+2
;Puesta a cero posiciones coches por nivel.
lda #<COORNIV
sta Lect1+1 ;LO
lda #>COORNIV
sta Lect1+2 ;HI
;Copiar pistas y Coordenadas de los coches
;Mostrar menú y cargar valores coordenadas coches para el menú.
jsr mostrar ;Mostar niveles
jsr NivCoch ;Copiar variables coches (copia según nivel).
;Mostrar primera pantalla juego y cargar valores coordenadas coches
jsr mostrar ;Mostar niveles
jsr NivCoch ;Copiar variables coches (copia según nivel).
;Prueba de movimiento de coordenadas.
Decero
lda #03 ;Valor del bucle para movimiento de los 4 vehículos.
sta RegX ;Guardando para procesos.
loop1
;CHECKEAR si choco con algo en sguiente movimiento.
ldx RegX ;Puntero del coche a mover
lda CoorX,x ;Carga coordenada X del vehiculo x XD
sta CACOX ;Guardo en variable de la rutina a calcular X e Y a 16 bits pantalla.
lda CoorY,x ;Idem con Y
sta CACOY
lda Dir,x ;Comprobando dirección para chequeo colisión:
beq checkder ;=0, derecha.
cmp #01
beq checkup ;=1, UP arriba.
cmp #02 ;izqui
beq checkizq ;=2, Izquierda.
jmp checkdown ;Si no es ninguna de las anteriores, es=3, abajo.
checkder ;CHECK DERECHA
inc CACOX ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
dec CACOX ;Recupero valor anterior.
cmp #66 ;(|) obstaculo
bne fin3 ;Si no hay obstáculo, paso.
jsr XtoY ;Si lo hay, cambiar de dirección.
fin3 jmp poke ;Seguir con el programa,
checkizq
dec CACOX ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
inc CACOX ;Recupero valor anterior.
cmp #66 ;(|) obstaculo
bne fin4
jsr XtoY
fin4 jmp poke
checkup
dec CACOY ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
inc CACOY ;Recupero valor anterior.
cmp #67 ;(-) obstaculo
bne fin5
jsr YtoX
fin5 jmp poke
checkdown
inc CACOY ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
dec CACOY ;Recupero valor anterior.
cmp #67 ;(-) obstaculo
bne fin6
jsr YtoX
fin6 jmp poke
;Pokea punto en pantalla
poke
jsr CALC16
lda #81
ldy CACOX
sta ($FB),y
;Bucle de freno
ldx #20
fren1 ldy #255
fren2 dey
bne fren2
dex
bne fren1
;Borra punto en pantalla
lda #32
ldy CACOX
sta ($FB),y
;Mover coches una vez decididas las nuevas direcciones.
jsr MOVER
;Decrementa RegX hasta ser negativo
ldx RegX
stx $0400 ;Testigo del numero de coche actual.
dec RegX
bpl repe ;Mientras sea positivo, repite el bucle. >=0 hasta 127
jmp Decero ;Sale del bucle
repe jmp loop1
;===================================SUBRUTINAS==================================
;===================================MOVER COCHES X e Y
MOVER
;guardando las coordenadas temporales en su lugar fijo.
ldx RegX ;Numero de vehiculo actual a mover.
lda cacox
sta coorx,x
lda cacoy
sta coory,x
;Aquí empieza el movimiento.
Bucle0 lda Dir,x
beq Der
cmp #01
beq Arr
cmp #02
beq Izq
jmp Abaj
;-------
Der Inc CoorX,x
jmp sigue0
;-------
Izq dec CoorX,x
jmp sigue0
;-------
Arr dec CoorY,x
jmp sigue0
;-------
Abaj inc CoorY,x
Sigue0 rts
;===================================CALC16.
CALC16
;Calcula las coordenadas X e Y y carga en ACU lo que haya debajo.
;$FB y $FC contendrán el valor calculado a utilizar.
lda #00 ;HI
ldy CACOY ;LO coordenada Y de cada coche
jsr intfac
jsr facarg
lda #00 ;HI
ldy #40 ;LO * #40
jsr intfac
jsr mul
jsr facind
lda $64 ;LO
ldy $65 ;HI resultado de CoordY*40
jsr intfac
jsr facarg
ldy #00 ;LO sumar resultado por #1024
lda #04 ;HI
jsr intfac
jsr sum
jsr facind
lda $64 ;LO
ldy $65 ;HI
sty $FB ;LO
sta $FC ;HI
ldy CACOX
lda ($FB),y ;Peek(1024+(Y*40)+X)
clc
rts
;===================================
;===================================CAMBIODIR.
;Solo checkeo en una dirección ya que si hay obstáculo, irá al contrario y si no lo hay, hacia el lado libre.
XtoY ;Cambia dirección de X a Y
inc CACOY ;Aumentando la coordenada Y para ver si está libre u ocupada.
jsr CALC16
dec CACOY ;Recuperando su valor anerior para que el coche aparezca en su lugar.
cmp #67 ;(-)
bne abajo
arriba lda #01
ldx RegX
sta Dir,x ;Guardando la nueva dirección.
rts
abajo lda #03
ldx RegX
sta Dir,x
rts
YtoX ;Cambia dirección de Y a X
inc CACOX
jsr CALC16
dec CACOX
cmp #66 ;(|)
bne dere
izqui lda #02
ldx RegX
sta Dir,x
rts
dere
lda #00
ldx RegX
sta Dir,x
rts
;===================================MOSTRAR PANTALLAS.
mostrar
;Lectura colores pantallas:
jsr Leer
sta $d021 ;Color Fondo.
jsr Leer
sta $d020 ;Color marco.
jsr Leer
jsr $ab47 ;Color caracteres.
lda #147 ;CHR$ CLR screen
jsr $ab47 ;Para que se muestren del color deseado. Ahorro RAM color.
jsr Leer
sta spena ;Conecta los sprites que van a verse.
;Siempre puesta a cero de ESCRITURA Ram pantalla.
lda #00
sta Escr0+1 ;Lo Escritura RAM pantalla
lda #04
sta Escr0+2 ;Hi Escritura RAM pantalla
;Copiar 1000 chars a pantalla.
loop0 jsr Leer ;Leyendo datos pantallas.
cmp #255
clc
beq fin0 ;Si=Adios
Escr0 sta $ffff ;No importa el valor. Tendrá el correcto.
inc Escr0+1 ;Aumento en 1 el LOBYTE escritura.
bne paso1
inc Escr0+2 ;Aumento en 1 el HIBYtE escritura.
paso1 jmp loop0
fin0 rts
;===================================LEER.
Leer ;Lectura de niveles.
Lect0 lda $ffff ;No importa el valor. Tendrá el correcto.
Ajuste inc Lect0+1 ;Aumento en 1 el LOBYTE lectura.
bne paso0
inc Lect0+2 ;Hi
paso0 rts
;===================================COPIAR VARIABLES COCHES SEGUN NIVEL.
;Funciona por los mismos principios que las copias de pantalla.
NIVCOCH ldy #00
Lect1 lda $ffff
cmp #255
beq fin2
sta CoorX,y
jsr leer2
paso9 iny
jmp Lect1
fin2 jsr leer2
rts
;================================LEER DATOS COCHES NIVEL
leer2 inc Lect1+1
bne paso10
inc Lect1+2
paso10 rts
;*******************************************************************************
;EMPIEZA LA ZONA DE VARIABLES
;*******************************************************************************
CoorX BYTE $00,$00,$00,$00 ;Coordenadas X de los coches
CoorY BYTE $00,$00,$00,$00 ;Coordenadas Y de los coches
Dir BYTE $00,$00,$00,$00 ;Direcciones de cada coche.0-3
TempX BYTE $00 ;Cache coordenada X para recuperar
TempY BYTE $00 ;Cache coordenada Y para recuperar
Borra BYTE $00 ;Permiso para borrar el punto.
RegX BYTE $00 ;Guarda el registro X
CACOX BYTE $00
CACOY BYTE $00
;*******************************************************************************
;Coches por nivel
COORNIV ;X,Y y DIRECCION
; X0 X1 X2 X3 Y0 Y1 Y2 Y3 D0 D1 D2 D3
BYTE $02,$02,$25,$1d,$09,$16,$16,$02,$00,$01,$02,$00,$ff ;Presentacion
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv1
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv2
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv3
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;Pantallas
*=$3000
SCR
BYTE $0E,$0E,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$42
BYTE $42,$20,$20,$55,$20,$49,$55,$43,$49,$55,$43,$49,$55,$4D,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4D,$4D,$20,$20,$20,$20,$42,$20,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$42,$42
BYTE $42,$20,$20,$6B,$43,$73,$6B,$43,$73,$6B,$43,$73,$42,$20,$76,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$0D,$01,$0E,$09,$01,$0B,$0F,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4E,$4E,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$4A,$20,$4B,$4A,$43,$4B,$4A,$20,$4B,$4A,$4E,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$10,$01,$12,$01,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$55,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$55,$43,$49,$55,$20,$49,$20,$42,$20,$42,$03,$0F,$0D,$0D,$0F,$04,$0F,$12,$05,$0D,$01,$0E,$09,$01,$42,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$42,$42,$65,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$55,$43,$43,$43,$43,$49,$20,$42,$20,$42,$20,$42,$42,$42,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$42,$20,$42,$42,$67,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$4A,$43,$4B,$4A,$20,$4B,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$0A,$0F,$19,$13,$14,$09,$03,$0B,$20,$05,$0E,$20,$10,$0F,$12,$14,$20,$31,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$04,$09,$13,$10,$01,$12,$01,$20,$10,$01,$12,$01,$20,$05,$0D,$10,$05,$1A,$01,$12,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$42
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$FF
; Screen 1
BYTE $06,$06,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$ff
; Screen 2
BYTE $00,$00,$05,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$72,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$ff
; Screen 3
BYTE $07,$07,$90,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$72,$43,$43,$43,$72,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$ff