FAQ  •  Register  •  Login

COCHES & CICLOPES (Y SATURNO)

Moderator: nitrofurano

<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Fri Aug 09, 2013 11:00 pm

COCHES & CICLOPES (Y SATURNO)

Hello everyone.

I'd like to share the last two "games" I've done with ZxBC.

They are extremely simple because I've done them upon request from my sons and they are 4 years old.

The first one is called Ciclopes (y Saturno). It's a pong/football twist played by two cyclops (well, they are merely balls with one eye but apparently that's how cyclops looks like for a Little boy) and the ball is the planet Saturn. Keys are QAZX and PLNM.

The second one is Coches. It's a simple super sprint twist for two players. Keys are QAZX and PLNM, but to make thing easier the key Y toggle between the manual and the automatic mode. In the automatic mode you just have to accelerate and brake and the car turns by itself when it finds an obstacle.
With the key H you toggle between the different curses and with the key G you change the color of the cars.

I usually make these games (and the crap games for the CSSCGC compo) to try different things to use if I ever make a non crap game. And in this two games there is a thing I'm proud of: My very first assembler routine. It's a symple sprite XORing routine but with a little trick: When moving the sprites, instead of just erasing the full sprite (XORing it) in the previous location and then printing it in the new coordinates, it does this but one byte after other. The result is that I can get rid of the sprite flashing at the cost of a little tearing, and this is a sacrifice I accept happily because before I wasted too much time re-ordering the sprites (to print first the ones that were higher in the screen) or making dumb cycles waiting for the screen retrace.

I hope you like them.

P.S. If anyone is interested in the code, I warn you it's completely rubbish (untidy, un-commented...).
Attachments
COCHES.zip
(8.79 KiB) Downloaded 152 times
CICLOPES.zip
(5.28 KiB) Downloaded 142 times
<<

britlion

Posts: 766

Joined: Mon Apr 27, 2009 7:26 pm

Location: Slough, Berkshire, UK

Post Sat Aug 10, 2013 10:00 am

Re: COCHES & CICLOPES (Y SATURNO)

Actually, they are sort of cool. You should definitely put them on WOS. Nice job! Very smooth cars, there :)

I'm very much pro source code being posted - but for small games like this, it's especially important, if you don't mind other people looking - we want more people to learn zxbc.
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Sat Aug 10, 2013 11:46 am

Re: COCHES & CICLOPES (Y SATURNO)

Yes, you are right. I shall post the code but I'll tidy it up a Little before (just adding a couple of REMs pointing what the following routines do).
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Sat Aug 10, 2013 4:28 pm

Re: COCHES & CICLOPES (Y SATURNO)

For masochist, the code:

Later I'll upload the files needed to do the compilation (the binaries for the curse maps, and the sprite routine once I have made comments in it too):

  Code:
'-T -B -S 32768 -a %F.bas

#include <sinclair.bas>
#include <keys.bas>

'THESE VARIABLES DOESN'T REFRESH AFTER A RESTART, THAT' WHY THEY ARE DEFINED BEFORE THE GAME START.
DIM PANTALLA, COLORCOCHES,AUTOMATICO AS UBYTE
LET PANTALLA=0                                              'INITIAL SCREEN NUMBER
LET COLORCOCHES=2                                           'INITIAL CARS COLOR
LET AUTOMATICO=0                                            'TOGGLE AUTOMATIC MODE ON/OFF (0>OFF, OTHER>ON)


'THIS IS WHERE THE GAME JUMPS AFTER A RESET
PRINCIPIODELTODO:
IF PANTALLA>5 THEN LET PANTALLA=0: END IF                  'IF YOU INSERT A NEW CURSE, DON'T FORGET TO INCREASE THE MAX NUMBER OF SCREENS (5 HERE)
IF COLORCOCHES>7 THEN LET COLORCOCHES=1: END IF            'WHEN SELECTED A COLOR>7, CYCLE
PAPER 0: BORDER 5: INK 3: BRIGHT 0: CLS

'DRAW THE CURSE
DIM POSICION,A,B,PINTA,COLORES AS UINTEGER
POKE @ATTRCIRCUITOS,(64+COLORCOCHES)                       'THIS SETS THE CAR COLOUR. IN FACT, WE POKE THE COLOUR OF THE FIRST TILE (THE ROAD) WITH THE INK CODE
FOR A=0 TO 22
FOR B=0 TO 31
LET POSICION=(A*32)+B
LET PINTA=PEEK (@CIRCUITOUNO + POSICION+(736*PANTALLA))
POKE UINTEGER 23675,(@GFXCIRCUITOS+PINTA*8)                'TO DRAW THE SCREEN, WE POINT THE UDG VARIABLE WITH THE PERTINENT TILE AND THEN
PRINT AT A,B;CHR (144)                                     'WE PRINT IT
'PRINT AT A,B;PINTA
LET COLORES=PEEK (PINTA+@ATTRCIRCUITOS)                    'SAME THING WITH COLOURS
setattr (A,B,COLORES)
NEXT
NEXT

IF AUTOMATICO THEN PRINT AT 23,5;PAPER 7;INK 2;"A";AT 23,26;PAPER 7;INK 2;"A": END IF    '"A" MEANS WE HAVE SELECTED AUTOMATIC MODE

DIM X,Y,XA,YA,FRAME,FRAMEA,DIRECCION,DIRECCIONA,LIMUNO,LIMDOS,LIMTRES,LIMCUATRO,LIMCINCO,LIMSEIS,LIMSIETE,LIMOCHO,LIMNUEVE AS UINTEGER
DIM XS,YS,XSA,YSA,FRAMES,FRAMESA,DIRECCIONS,DIRECCIONSA,LIMSUNO,LIMSDOS,LIMSTRES,LIMSCUATRO,LIMSCINCO,LIMSSEIS,LIMSSIETE,LIMSOCHO,LIMSNUEVE AS UINTEGER
DIM IZDA,DCHA,ABAJ,ARRI,N,S,W,E,VEL AS UBYTE
DIM IZDAS,DCHAS,ABAJS,ARRIS,NS,SS,WS,ES,VELS AS UBYTE

DIM VECTORX (0 TO 7) AS BYTE => {-1,-1,0,1,1,1,0,-1}       'VECTORX> MEANS THE DISPLACEMENT IN THE X COORDINATE FOR EACH OF THE DIRECTIONS (N,NE,E,SE,S,SW,W,NW)

DIM VECTORY (0 TO 7) AS BYTE => {0,1,1,1,0,-1,-1,-1}       'VECTORY> MEANS THE DISPLACEMENT IN THE Y COORDINATE FOR EACH OF THE DIRECTIONS (N,NE,E,SE,S,SW,W,NW)

LET X=5: LET Y=72: LET XA=5: LET YA=72            'X AND Y> COORDINATES // XA AND YA> PREVIOUS COORDINATES (TO ERASE THE SPRITE OR GO BACK)
LET FRAME=Y MOD 8: LET FRAMEA=YA MOD 8            'FRAMEY> RELATIVE POSITION OF THE SPRITE IN A 8 PIXEL BOUNDARY. WE NEED THIS BECAUSE WE USE PRE-ROTATED GRAPHICS
LET DIRECCION=2: LET DIRECCIONA=2                 'DIRECCION=DIRECTION WE ARE FACING
LET VEL=0                                         'VEL=SPEED. WE MULTIPLY THIS NUMBER WITH THE PERTINENT VECTORX/VECTORY TO CALCULATE THE DISPLACEMENT.

LET XS=19: LET YS=72: LET XSA=19: LET YSA=72      'SAME AS BEFORE, BUT FOR PLAYER 2
LET FRAMES=YS MOD 8: LET FRAMESA=YSA MOD 8
LET DIRECCIONS=2: LET DIRECCIONSA=2
LET VELS=0

'CALLING THE SPRITE ROUTINE IN THE FORM (X,Y,GRAPHIC,XA,YA,PREVIOUSGRAPHIC)
xorsprite (X,Y,@COCHE+(FRAME*48)+(DIRECCION*384),XA,YA,@vacio)           'AS THIS IS THE FIRST PRINT, WE CHOOSE AN EMPTY BUFFER (vacio) AS PREVIOUS GRAPHIC
xorsprite (XS,YS,@COCHEDOS+(FRAMES*48)+(DIRECCIONS*384),XSA,YSA,@vacio)  'SAME FOR PLAYER 2

'HERE STARTS THE MAIN LOOP
BUCLEPRINCIPAL:

'READING KEYS FOR PLAYER ONE
LET IZDA=MULTIKEYS(KEYZ): IF IZDA THEN LET W=3: END IF
LET DCHA=MULTIKEYS(KEYX): IF DCHA THEN LET E=2: END IF
LET ABAJ=MULTIKEYS(KEYA): IF ABAJ THEN LET S=1: END IF
LET ARRI=MULTIKEYS(KEYQ): IF ARRI THEN LET N=0: END IF

'READING KEYS FOR PLAYER TWO
LET IZDAS=MULTIKEYS(KEYN): IF IZDAS THEN LET WS=3: END IF
LET DCHAS=MULTIKEYS(KEYM): IF DCHAS THEN LET ES=2: END IF
LET ABAJS=MULTIKEYS(KEYL): IF ABAJS THEN LET SS=1: END IF
LET ARRIS=MULTIKEYS(KEYP): IF ARRIS THEN LET NS=0: END IF

'LEFT AND RIGHT ROTATE THE DIRECCION
IF IZDA THEN LET DIRECCION=DIRECCION-1: END IF
IF DCHA THEN LET DIRECCION=DIRECCION+1: END IF

'UP AND DOWN ACCELERATE OR BRAKE
IF ABAJ AND VEL>0 THEN LET VEL=VEL-1: GOSUB VELOCIMETRO: END IF
IF ARRI AND VEL<8 THEN LET VEL=VEL+1: GOSUB VELOCIMETRO: END IF      'MAX SPEED=8 PIXEL (THIS CAN BE ALTERED)

'SAME AS BEFORE FOR PLAYER 2
IF IZDAS THEN LET DIRECCIONS=DIRECCIONS-1: END IF
IF DCHAS THEN LET DIRECCIONS=DIRECCIONS+1: END IF
IF ABAJS AND VELS>0 THEN LET VELS=VELS-1: GOSUB VELOCIMETRO: END IF
IF ARRIS AND VELS<8 THEN LET VELS=VELS+1: GOSUB VELOCIMETRO: END IF

'READING SPECIAL KEYS //H=NEXT CURSE //G=ALTER COLOUR //Y=TOGGLE AUTOMATIC ON/OFF
IF MULTIKEYS(KEYH) THEN LET PANTALLA=PANTALLA+1: GOTO PRINCIPIODELTODO: END IF
IF MULTIKEYS(KEYG) THEN LET COLORCOCHES=COLORCOCHES+1: GOTO PRINCIPIODELTODO: END IF
IF MULTIKEYS(KEYY) THEN LET AUTOMATICO=AUTOMATICO XOR 1: GOTO PRINCIPIODELTODO: END IF

IF DIRECCION>250 THEN LET DIRECCION=7: END IF      'WE DON'T WANT DIRECTION TO BE<0. AS THE VARIABLE IS UNSIGNED, WHEN IT'S BELLOW 0 ITS IN FACT 255
IF DIRECCION>7 THEN LET DIRECCION=0: END IF        'IF DIRECTION<7 CYCLE IT

IF DIRECCIONS>250 THEN LET DIRECCIONS=7: END IF    'SAME FOR PLAYER 2
IF DIRECCIONS>7 THEN LET DIRECCIONS=0: END IF

'HERE WE RECALCULATE THE X AND Y COORDINATES BY MULTIPLY THE SPEED WITH THE PERTINENT DISPLACEMENT IN THE VECTOR MATRIX
LET X=X+(VECTORX(DIRECCION)*VEL)
LET Y=Y+(VECTORY(DIRECCION)*VEL)
'SAME FOR PLAYER 2
LET XS=XS+(VECTORX(DIRECCIONS)*VELS)
LET YS=YS+(VECTORY(DIRECCIONS)*VELS)

IF AUTOMATICO=0 THEN GOTO SALTOAUTOMATICOUNO: END IF      'IF AUTOMATIC MODE IS OFF, WE DON'T WANT THE CAR TO STEER WHEN IT FINDS AND OBSTACLE

'DECREASE SPEED AND TURN THE CAR WHEN THE CAR IS IN THE SCREEN BOUNDS
IF X>166 OR X<1 THEN LET X=XA: LET Y=YA: LET VEL=VEL-1: LET DIRECCION=DIRECCION+1: GOSUB VELOCIMETRO: END IF
IF Y>237 OR Y<1 THEN LET Y=YA: LET X=XA: LET VEL=VEL-1: LET DIRECCION=DIRECCION+1: GOSUB VELOCIMETRO: END IF

IF XS>166 OR XS<1 THEN LET XS=XSA: LET YS=YSA: LET VELS=VELS-1: LET DIRECCIONS=DIRECCIONS+1: GOSUB VELOCIMETRO: END IF
IF YS>237 OR YS<1 THEN LET YS=YSA: LET XS=XSA: LET VELS=VELS-1: LET DIRECCIONS=DIRECCIONS+1: GOSUB VELOCIMETRO: END IF

IF AUTOMATICO THEN GOTO SALTODOS: END IF   'IS AUTOMATIC MODE IS SET, WE HAVE ALREADY CHECKED THE BOUNDS, SO WE SKIP THE NEXT INSTRUCTIONS
SALTOAUTOMATICOUNO:
'DECRESE SPEED WHEN THE CAR IS IN THE SCREEN BOUNDS
IF X>166 OR X<1 THEN LET X=XA: LET Y=YA: LET VEL=VEL-1: GOSUB VELOCIMETRO: END IF
IF Y>237 OR Y<1 THEN LET Y=YA: LET X=XA: LET VEL=VEL-1: GOSUB VELOCIMETRO: END IF

IF XS>166 OR XS<1 THEN LET XS=XSA: LET YS=YSA: LET VELS=VELS-1: GOSUB VELOCIMETRO: END IF
IF YS>237 OR YS<1 THEN LET YS=YSA: LET XS=XSA: LET VELS=VELS-1: GOSUB VELOCIMETRO: END IF

SALTODOS:

GOSUB LIMITES              'JUMP TO DO THE COLISION DETECTION

'CALCULATE THE 8 PIXEL BOUNDARIES
LET FRAME=Y MOD 8
LET FRAMES=YS MOD 8

PAUSE 1          'WE DON'T REALLY NEED TO DO THIS, BUT THE TIMMING IS BETTER IF WE DO
xorsprite (X,Y,@COCHE+(FRAME*48)+(DIRECCION*384),XA,YA,@COCHE+(FRAMEA*48)+(DIRECCIONA*384))
xorsprite (XS,YS,@COCHEDOS+(FRAMES*48)+(DIRECCIONS*384),XSA,YSA,@COCHEDOS+(FRAMESA*48)+(DIRECCIONSA*384))

'HERE WE UPDATE THE "PREVIOUS" VALORS WITH THE "CURRENT" VALORS AND GO BACK TO THE BEGGINING OF THE LOOP
LET XA=X: LET YA=Y: LET FRAMEA=FRAME: LET DIRECCIONA=DIRECCION
LET N=0: LET S=0: LET E=0: LET W=0

LET XSA=XS: LET YSA=YS: LET FRAMESA=FRAMES: LET DIRECCIONSA=DIRECCIONS
LET NS=0: LET SS=0: LET ES=0: LET WS=0

GOTO BUCLEPRINCIPAL


STOP

'SPEEDMETER PRINTING (IN THE BOTTOM OF THE SCREEN)
VELOCIMETRO:
IF VEL>16 THEN LET VEL=0: END IF
PRINT AT 23,0;PAPER 6;"    "
PRINT AT 23,0;PAPER 6;VEL*30;" "

IF VELS>16 THEN LET VESL=0: END IF
PRINT AT 23,28;PAPER 6;"    "
PRINT AT 23,28;PAPER 6;VELS*30;" "
RETURN

'COLISION DETECTION, ATTRIBUTE BASED. WE COLLIDE WITH ANYTHING NOT BRIGHT. AS THE SPRITES ARE 16X16 PIXEL BUT PRE-ROTATED, WE HAVE IN FACT 24X16 SPRITES
'BUT GIVEN THAT WE PLACE THE SPRITES IN HIGH RESOLUTION (VERTICALY) WE HAVE TO CHECK FOR AN ADITIONAL CHARACTER LINE
'SO WE DO CHECK 9 CHARACTER BOXES (3,3 AND 3)
LIMITES:
LET LIMUNO=attr (INT(X/8),INT(Y/8)): LET LIMDOS=attr (INT(X/8),INT(Y/8)+1): LET LIMTRES=attr (INT(X/8),INT(Y/8)+2): LET LIMCUATRO=attr (INT(X/8)+1,INT(Y/8)):LET LIMCINCO=attr (INT(X/8)+1,INT(Y/8)+1): LET LIMSEIS=attr (INT(X/8)+1,INT(Y/8)+2): LET LIMSIETE=attr (INT(X/8)+2,INT(Y/8)): LET LIMOCHO=attr (INT(X/8)+2,INT(Y/8)+1): LIMNUEVE=attr (INT(X/8)+2,INT(Y/8)+2)

LET LIMSUNO=attr (INT(XS/8),INT(YS/8)): LET LIMSDOS=attr (INT(XS/8),INT(YS/8)+1): LET LIMSTRES=attr (INT(XS/8),INT(YS/8)+2): LET LIMSCUATRO=attr (INT(XS/8)+1,INT(YS/8)):LET LIMSCINCO=attr (INT(XS/8)+1,INT(YS/8)+1): LET LIMSSEIS=attr (INT(XS/8)+1,INT(YS/8)+2): LET LIMSSIETE=attr (INT(XS/8)+2,INT(YS/8)): LET LIMSOCHO=attr (INT(XS/8)+2,INT(YS/8)+1): LIMSNUEVE=attr (INT(XS/8)+2,INT(YS/8)+2)

IF AUTOMATICO=0 THEN GOTO SALTOAUTOMATICODOS: END IF   'IF NOT AUTOMATIC, WE SKIP NEXT INSTRUCTIONS (CARS STEERING ALONE)

'IF COLLISION, DECREASE SPEED AND ALTER (RANDOM, I COULD'T BE BOTHERED WITH A WAYPOINT SYSTEM) THE DIRECTION
IF (LIMUNO)<64 OR (LIMDOS)<64 OR (LIMTRES)<64 OR (LIMCUATRO)<64 OR (LIMCINCO)<64 OR (LIMSEIS)<64 OR (LIMSIETE)<64 OR (LIMOCHO)<64 OR (LIMNUEVE)<64 THEN LET X=XA: LET Y=YA: LET VEL=VEL-1: LET DIRECCION=DIRECCION+(INT(RND*3)-1): GOSUB VELOCIMETRO: END IF

IF (LIMSUNO)<64 OR (LIMSDOS)<64 OR (LIMSTRES)<64 OR (LIMSCUATRO)<64 OR (LIMSCINCO)<64 OR (LIMSSEIS)<64 OR (LIMSSIETE)<64 OR (LIMSOCHO)<64 OR (LIMSNUEVE)<64 THEN LET XS=XSA: LET YS=YSA: LET VELS=VELS-1: LET DIRECCIONS=DIRECCIONS+(INT(RND*3)-1): GOSUB VELOCIMETRO: END IF

SALTOAUTOMATICODOS:
IF AUTOMATICO THEN RETURN: END IF     'IF AUTOMATIC, WE ARE DONE.

'IF COLLISION, DECREASE SPEED
IF (LIMUNO)<64 OR (LIMDOS)<64 OR (LIMTRES)<64 OR (LIMCUATRO)<64 OR (LIMCINCO)<64 OR (LIMSEIS)<64 OR (LIMSIETE)<64 OR (LIMOCHO)<64 OR (LIMNUEVE)<64 THEN LET X=XA: LET Y=YA: LET VEL=VEL-1: GOSUB VELOCIMETRO: END IF

IF (LIMSUNO)<64 OR (LIMSDOS)<64 OR (LIMSTRES)<64 OR (LIMSCUATRO)<64 OR (LIMSCINCO)<64 OR (LIMSSEIS)<64 OR (LIMSSIETE)<64 OR (LIMSOCHO)<64 OR (LIMSNUEVE)<64 THEN LET XS=XSA: LET YS=YSA: LET VELS=VELS-1: GOSUB VELOCIMETRO: END IF
RETURN



#include "sprite3.bas"

vacio:                             'EMPTY BUFFER (FOR THE FIRST TIME WE PRINT THE SPRITES)
ASM
vacio:
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
END ASM
COCHE:                            'CAR ONE GRAPHICS. N,NE,E,SE,S,SW,W,NW
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain

;GRAPHIC DATA:
;Pixel Size:      ( 24,  16)
;Char Size:       (  3,   2)
;Frames:             8
;Sort Priorities: X char, Char line, Y char, Frame number
;Data Outputted:  Gfx
;Interleave:      Sprite
;Mask:            No

coche_n_r:
   DEFB     1,128,  0,  1,128,  0,  3,192
   DEFB     0,  7,224,  0,  6, 96,  0, 53
   DEFB   172,  0, 61,188,  0, 55,236,  0
   DEFB    15,240,  0, 15,240,  0, 15,240
   DEFB     0,  7,224,  0, 59,220,  0, 57
   DEFB   156,  0, 59,220,  0, 55,236,  0
   DEFB     0,192,  0,  0,192,  0,  1,224
   DEFB     0,  3,240,  0,  3, 48,  0, 26
   DEFB   214,  0, 30,222,  0, 27,246,  0
   DEFB     7,248,  0,  7,248,  0,  7,248
   DEFB     0,  3,240,  0, 29,238,  0, 28
   DEFB   206,  0, 29,238,  0, 27,246,  0
   DEFB     0, 96,  0,  0, 96,  0,  0,240
   DEFB     0,  1,248,  0,  1,152,  0, 13
   DEFB   107,  0, 15,111,  0, 13,251,  0
   DEFB     3,252,  0,  3,252,  0,  3,252
   DEFB     0,  1,248,  0, 14,247,  0, 14
   DEFB   103,  0, 14,247,  0, 13,251,  0
   DEFB     0, 48,  0,  0, 48,  0,  0,120
   DEFB     0,  0,252,  0,  0,204,  0,  6
   DEFB   181,128,  7,183,128,  6,253,128
   DEFB     1,254,  0,  1,254,  0,  1,254
   DEFB     0,  0,252,  0,  7,123,128,  7
   DEFB    51,128,  7,123,128,  6,253,128
   DEFB     0, 24,  0,  0, 24,  0,  0, 60
   DEFB     0,  0,126,  0,  0,102,  0,  3
   DEFB    90,192,  3,219,192,  3,126,192
   DEFB     0,255,  0,  0,255,  0,  0,255
   DEFB     0,  0,126,  0,  3,189,192,  3
   DEFB   153,192,  3,189,192,  3,126,192
   DEFB     0, 12,  0,  0, 12,  0,  0, 30
   DEFB     0,  0, 63,  0,  0, 51,  0,  1
   DEFB   173, 96,  1,237,224,  1,191, 96
   DEFB     0,127,128,  0,127,128,  0,127
   DEFB   128,  0, 63,  0,  1,222,224,  1
   DEFB   204,224,  1,222,224,  1,191, 96
   DEFB     0,  6,  0,  0,  6,  0,  0, 15
   DEFB     0,  0, 31,128,  0, 25,128,  0
   DEFB   214,176,  0,246,240,  0,223,176
   DEFB     0, 63,192,  0, 63,192,  0, 63
   DEFB   192,  0, 31,128,  0,239,112,  0
   DEFB   230,112,  0,239,112,  0,223,176
   DEFB     0,  3,  0,  0,  3,  0,  0,  7
   DEFB   128,  0, 15,192,  0, 12,192,  0
   DEFB   107, 88,  0,123,120,  0,111,216
   DEFB     0, 31,224,  0, 31,224,  0, 31
   DEFB   224,  0, 15,192,  0,119,184,  0
   DEFB   115, 56,  0,119,184,  0,111,216

coche_ne_r:
   DEFB     1,  3,  0,  3,159,  0,  7,126
   DEFB     0,  2,222,  0, 33,174,  0,119
   DEFB   244,  0,255,232,  0,239,250,  0
   DEFB   207,247,  0, 63,238,  0, 63,228
   DEFB     0, 31,192,  0, 14, 96,  0,  6
   DEFB   240,  0,  1,224,  0,  1,192,  0
   DEFB     0,129,128,  1,207,128,  3,191
   DEFB     0,  1,111,  0, 16,215,  0, 59
   DEFB   250,  0,127,244,  0,119,253,  0
   DEFB   103,251,128, 31,247,  0, 31,242
   DEFB     0, 15,224,  0,  7, 48,  0,  3
   DEFB   120,  0,  0,240,  0,  0,224,  0
   DEFB     0, 64,192,  0,231,192,  1,223
   DEFB   128,  0,183,128,  8,107,128, 29
   DEFB   253,  0, 63,250,  0, 59,254,128
   DEFB    51,253,192, 15,251,128, 15,249
   DEFB     0,  7,240,  0,  3,152,  0,  1
   DEFB   188,  0,  0,120,  0,  0,112,  0
   DEFB     0, 32, 96,  0,115,224,  0,239
   DEFB   192,  0, 91,192,  4, 53,192, 14
   DEFB   254,128, 31,253,  0, 29,255, 64
   DEFB    25,254,224,  7,253,192,  7,252
   DEFB   128,  3,248,  0,  1,204,  0,  0
   DEFB   222,  0,  0, 60,  0,  0, 56,  0
   DEFB     0, 16, 48,  0, 57,240,  0,119
   DEFB   224,  0, 45,224,  2, 26,224,  7
   DEFB   127, 64, 15,254,128, 14,255,160
   DEFB    12,255,112,  3,254,224,  3,254
   DEFB    64,  1,252,  0,  0,230,  0,  0
   DEFB   111,  0,  0, 30,  0,  0, 28,  0
   DEFB     0,  8, 24,  0, 28,248,  0, 59
   DEFB   240,  0, 22,240,  1, 13,112,  3
   DEFB   191,160,  7,255, 64,  7,127,208
   DEFB     6,127,184,  1,255,112,  1,255
   DEFB    32,  0,254,  0,  0,115,  0,  0
   DEFB    55,128,  0, 15,  0,  0, 14,  0
   DEFB     0,  4, 12,  0, 14,124,  0, 29
   DEFB   248,  0, 11,120,  0,134,184,  1
   DEFB   223,208,  3,255,160,  3,191,232
   DEFB     3, 63,220,  0,255,184,  0,255
   DEFB   144,  0,127,  0,  0, 57,128,  0
   DEFB    27,192,  0,  7,128,  0,  7,  0
   DEFB     0,  2,  6,  0,  7, 62,  0, 14
   DEFB   252,  0,  5,188,  0, 67, 92,  0
   DEFB   239,232,  1,255,208,  1,223,244
   DEFB     1,159,238,  0,127,220,  0,127
   DEFB   200,  0, 63,128,  0, 28,192,  0
   DEFB    13,224,  0,  3,192,  0,  3,128

coche_e_r:
   DEFB     0,  0,  0,  0,  0,  0,240,224
   DEFB     0,240,224,  0,119, 64,  0,143
   DEFB   248,  0,223,156,  0,255,239,  0
   DEFB   255,239,  0,223,156,  0,143,248
   DEFB     0,119, 64,  0,240,224,  0,240
   DEFB   224,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,120,112
   DEFB     0,120,112,  0, 59,160,  0, 71
   DEFB   252,  0,111,206,  0,127,247,128
   DEFB   127,247,128,111,206,  0, 71,252
   DEFB     0, 59,160,  0,120,112,  0,120
   DEFB   112,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 60, 56
   DEFB     0, 60, 56,  0, 29,208,  0, 35
   DEFB   254,  0, 55,231,  0, 63,251,192
   DEFB    63,251,192, 55,231,  0, 35,254
   DEFB     0, 29,208,  0, 60, 56,  0, 60
   DEFB    56,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 30, 28
   DEFB     0, 30, 28,  0, 14,232,  0, 17
   DEFB   255,  0, 27,243,128, 31,253,224
   DEFB    31,253,224, 27,243,128, 17,255
   DEFB     0, 14,232,  0, 30, 28,  0, 30
   DEFB    28,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 15, 14
   DEFB     0, 15, 14,  0,  7,116,  0,  8
   DEFB   255,128, 13,249,192, 15,254,240
   DEFB    15,254,240, 13,249,192,  8,255
   DEFB   128,  7,116,  0, 15, 14,  0, 15
   DEFB    14,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  7,135
   DEFB     0,  7,135,  0,  3,186,  0,  4
   DEFB   127,192,  6,252,224,  7,255,120
   DEFB     7,255,120,  6,252,224,  4,127
   DEFB   192,  3,186,  0,  7,135,  0,  7
   DEFB   135,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  3,195
   DEFB   128,  3,195,128,  1,221,  0,  2
   DEFB    63,224,  3,126,112,  3,255,188
   DEFB     3,255,188,  3,126,112,  2, 63
   DEFB   224,  1,221,  0,  3,195,128,  3
   DEFB   195,128,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  1,225
   DEFB   192,  1,225,192,  0,238,128,  1
   DEFB    31,240,  1,191, 56,  1,255,222
   DEFB     1,255,222,  1,191, 56,  1, 31
   DEFB   240,  0,238,128,  1,225,192,  1
   DEFB   225,192,  0,  0,  0,  0,  0,  0


coche_se_r:
   DEFB     1,192,  0,  1,224,  0,  6,240
   DEFB     0, 14, 96,  0, 31,192,  0, 63
   DEFB   228,  0, 63,238,  0,207,247,  0
   DEFB   239,250,  0,255,236,  0,119,244
   DEFB     0, 33,174,  0,  2,222,  0,  7
   DEFB    62,  0,  3,159,  0,  1,  3,  0
   DEFB     0,224,  0,  0,240,  0,  3,120
   DEFB     0,  7, 48,  0, 15,224,  0, 31
   DEFB   242,  0, 31,247,  0,103,251,128
   DEFB   119,253,  0,127,246,  0, 59,250
   DEFB     0, 16,215,  0,  1,111,  0,  3
   DEFB   159,  0,  1,207,128,  0,129,128
   DEFB     0,112,  0,  0,120,  0,  1,188
   DEFB     0,  3,152,  0,  7,240,  0, 15
   DEFB   249,  0, 15,251,128, 51,253,192
   DEFB    59,254,128, 63,251,  0, 29,253
   DEFB     0,  8,107,128,  0,183,128,  1
   DEFB   207,128,  0,231,192,  0, 64,192
   DEFB     0, 56,  0,  0, 60,  0,  0,222
   DEFB     0,  1,204,  0,  3,248,  0,  7
   DEFB   252,128,  7,253,192, 25,254,224
   DEFB    29,255, 64, 31,253,128, 14,254
   DEFB   128,  4, 53,192,  0, 91,192,  0
   DEFB   231,192,  0,115,224,  0, 32, 96
   DEFB     0, 28,  0,  0, 30,  0,  0,111
   DEFB     0,  0,230,  0,  1,252,  0,  3
   DEFB   254, 64,  3,254,224, 12,255,112
   DEFB    14,255,160, 15,254,192,  7,127
   DEFB    64,  2, 26,224,  0, 45,224,  0
   DEFB   115,224,  0, 57,240,  0, 16, 48
   DEFB     0, 14,  0,  0, 15,  0,  0, 55
   DEFB   128,  0,115,  0,  0,254,  0,  1
   DEFB   255, 32,  1,255,112,  6,127,184
   DEFB     7,127,208,  7,255, 96,  3,191
   DEFB   160,  1, 13,112,  0, 22,240,  0
   DEFB    57,240,  0, 28,248,  0,  8, 24
   DEFB     0,  7,  0,  0,  7,128,  0, 27
   DEFB   192,  0, 57,128,  0,127,  0,  0
   DEFB   255,144,  0,255,184,  3, 63,220
   DEFB     3,191,232,  3,255,176,  1,223
   DEFB   208,  0,134,184,  0, 11,120,  0
   DEFB    28,248,  0, 14,124,  0,  4, 12
   DEFB     0,  3,128,  0,  3,192,  0, 13
   DEFB   224,  0, 28,192,  0, 63,128,  0
   DEFB   127,200,  0,127,220,  1,159,238
   DEFB     1,223,244,  1,255,216,  0,239
   DEFB   232,  0, 67, 92,  0,  5,188,  0
   DEFB    14,124,  0,  7, 62,  0,  2,  6

coche_s_r:
   DEFB    55,236,  0, 59,220,  0, 57,156
   DEFB     0, 59,220,  0,  7,224,  0, 15
   DEFB   240,  0, 15,240,  0, 15,240,  0
   DEFB    55,236,  0, 61,188,  0, 53,172
   DEFB     0,  6, 96,  0,  7,224,  0,  3
   DEFB   192,  0,  1,128,  0,  1,128,  0
   DEFB    27,246,  0, 29,238,  0, 28,206
   DEFB     0, 29,238,  0,  3,240,  0,  7
   DEFB   248,  0,  7,248,  0,  7,248,  0
   DEFB    27,246,  0, 30,222,  0, 26,214
   DEFB     0,  3, 48,  0,  3,240,  0,  1
   DEFB   224,  0,  0,192,  0,  0,192,  0
   DEFB    13,251,  0, 14,247,  0, 14,103
   DEFB     0, 14,247,  0,  1,248,  0,  3
   DEFB   252,  0,  3,252,  0,  3,252,  0
   DEFB    13,251,  0, 15,111,  0, 13,107
   DEFB     0,  1,152,  0,  1,248,  0,  0
   DEFB   240,  0,  0, 96,  0,  0, 96,  0
   DEFB     6,253,128,  7,123,128,  7, 51
   DEFB   128,  7,123,128,  0,252,  0,  1
   DEFB   254,  0,  1,254,  0,  1,254,  0
   DEFB     6,253,128,  7,183,128,  6,181
   DEFB   128,  0,204,  0,  0,252,  0,  0
   DEFB   120,  0,  0, 48,  0,  0, 48,  0
   DEFB     3,126,192,  3,189,192,  3,153
   DEFB   192,  3,189,192,  0,126,  0,  0
   DEFB   255,  0,  0,255,  0,  0,255,  0
   DEFB     3,126,192,  3,219,192,  3, 90
   DEFB   192,  0,102,  0,  0,126,  0,  0
   DEFB    60,  0,  0, 24,  0,  0, 24,  0
   DEFB     1,191, 96,  1,222,224,  1,204
   DEFB   224,  1,222,224,  0, 63,  0,  0
   DEFB   127,128,  0,127,128,  0,127,128
   DEFB     1,191, 96,  1,237,224,  1,173
   DEFB    96,  0, 51,  0,  0, 63,  0,  0
   DEFB    30,  0,  0, 12,  0,  0, 12,  0
   DEFB     0,223,176,  0,239,112,  0,230
   DEFB   112,  0,239,112,  0, 31,128,  0
   DEFB    63,192,  0, 63,192,  0, 63,192
   DEFB     0,223,176,  0,246,240,  0,214
   DEFB   176,  0, 25,128,  0, 31,128,  0
   DEFB    15,  0,  0,  6,  0,  0,  6,  0
   DEFB     0,111,216,  0,119,184,  0,115
   DEFB    56,  0,119,184,  0, 15,192,  0
   DEFB    31,224,  0, 31,224,  0, 31,224
   DEFB     0,111,216,  0,123,120,  0,107
   DEFB    88,  0, 12,192,  0, 15,192,  0
   DEFB     7,128,  0,  3,  0,  0,  3,  0

        coche_sw_r:
   DEFB     3,128,  0,  7,128,  0, 15, 96
   DEFB     0,  6,112,  0,  3,248,  0, 39
   DEFB   252,  0,119,252,  0,239,243,  0
   DEFB    95,247,  0, 23,255,  0, 47,238
   DEFB     0,117,132,  0,123, 64,  0,126
   DEFB   224,  0,249,192,  0,192,128,  0
   DEFB     1,192,  0,  3,192,  0,  7,176
   DEFB     0,  3, 56,  0,  1,252,  0, 19
   DEFB   254,  0, 59,254,  0,119,249,128
   DEFB    47,251,128, 11,255,128, 23,247
   DEFB     0, 58,194,  0, 61,160,  0, 63
   DEFB   112,  0,124,224,  0, 96, 64,  0
   DEFB     0,224,  0,  1,224,  0,  3,216
   DEFB     0,  1,156,  0,  0,254,  0,  9
   DEFB   255,  0, 29,255,  0, 59,252,192
   DEFB    23,253,192,  5,255,192, 11,251
   DEFB   128, 29, 97,  0, 30,208,  0, 31
   DEFB   184,  0, 62,112,  0, 48, 32,  0
   DEFB     0,112,  0,  0,240,  0,  1,236
   DEFB     0,  0,206,  0,  0,127,  0,  4
   DEFB   255,128, 14,255,128, 29,254, 96
   DEFB    11,254,224,  2,255,224,  5,253
   DEFB   192, 14,176,128, 15,104,  0, 15
   DEFB   220,  0, 31, 56,  0, 24, 16,  0
   DEFB     0, 56,  0,  0,120,  0,  0,246
   DEFB     0,  0,103,  0,  0, 63,128,  2
   DEFB   127,192,  7,127,192, 14,255, 48
   DEFB     5,255,112,  1,127,240,  2,254
   DEFB   224,  7, 88, 64,  7,180,  0,  7
   DEFB   238,  0, 15,156,  0, 12,  8,  0
   DEFB     0, 28,  0,  0, 60,  0,  0,123
   DEFB     0,  0, 51,128,  0, 31,192,  1
   DEFB    63,224,  3,191,224,  7,127,152
   DEFB     2,255,184,  0,191,248,  1,127
   DEFB   112,  3,172, 32,  3,218,  0,  3
   DEFB   247,  0,  7,206,  0,  6,  4,  0
   DEFB     0, 14,  0,  0, 30,  0,  0, 61
   DEFB   128,  0, 25,192,  0, 15,224,  0
   DEFB   159,240,  1,223,240,  3,191,204
   DEFB     1,127,220,  0, 95,252,  0,191
   DEFB   184,  1,214, 16,  1,237,  0,  1
   DEFB   251,128,  3,231,  0,  3,  2,  0
   DEFB     0,  7,  0,  0, 15,  0,  0, 30
   DEFB   192,  0, 12,224,  0,  7,240,  0
   DEFB    79,248,  0,239,248,  1,223,230
   DEFB     0,191,238,  0, 47,254,  0, 95
   DEFB   220,  0,235,  8,  0,246,128,  0
   DEFB   253,192,  1,243,128,  1,129,  0

coche_w_r:
   DEFB     0,  0,  0,  0,  0,  0,  7, 15
   DEFB     0,  7, 15,  0,  2,238,  0, 31
   DEFB   241,  0, 57,251,  0,247,255,  0
   DEFB   247,255,  0, 57,251,  0, 31,241
   DEFB     0,  2,238,  0,  7, 15,  0,  7
   DEFB    15,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  3,135
   DEFB   128,  3,135,128,  1,119,  0, 15
   DEFB   248,128, 28,253,128,123,255,128
   DEFB   123,255,128, 28,253,128, 15,248
   DEFB   128,  1,119,  0,  3,135,128,  3
   DEFB   135,128,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  1,195
   DEFB   192,  1,195,192,  0,187,128,  7
   DEFB   252, 64, 14,126,192, 61,255,192
   DEFB    61,255,192, 14,126,192,  7,252
   DEFB    64,  0,187,128,  1,195,192,  1
   DEFB   195,192,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,225
   DEFB   224,  0,225,224,  0, 93,192,  3
   DEFB   254, 32,  7, 63, 96, 30,255,224
   DEFB    30,255,224,  7, 63, 96,  3,254
   DEFB    32,  0, 93,192,  0,225,224,  0
   DEFB   225,224,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,112
   DEFB   240,  0,112,240,  0, 46,224,  1
   DEFB   255, 16,  3,159,176, 15,127,240
   DEFB    15,127,240,  3,159,176,  1,255
   DEFB    16,  0, 46,224,  0,112,240,  0
   DEFB   112,240,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 56
   DEFB   120,  0, 56,120,  0, 23,112,  0
   DEFB   255,136,  1,207,216,  7,191,248
   DEFB     7,191,248,  1,207,216,  0,255
   DEFB   136,  0, 23,112,  0, 56,120,  0
   DEFB    56,120,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 28
   DEFB    60,  0, 28, 60,  0, 11,184,  0
   DEFB   127,196,  0,231,236,  3,223,252
   DEFB     3,223,252,  0,231,236,  0,127
   DEFB   196,  0, 11,184,  0, 28, 60,  0
   DEFB    28, 60,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 14
   DEFB    30,  0, 14, 30,  0,  5,220,  0
   DEFB    63,226,  0,115,246,  1,239,254
   DEFB     1,239,254,  0,115,246,  0, 63
   DEFB   226,  0,  5,220,  0, 14, 30,  0
   DEFB    14, 30,  0,  0,  0,  0,  0,  0

coche_nw_r:
   DEFB   192,128,  0,249,192,  0,124,224
   DEFB     0,123, 64,  0,117,132,  0, 47
   DEFB   238,  0, 55,255,  0, 95,247,  0
   DEFB   239,243,  0,119,252,  0, 39,252
   DEFB     0,  3,248,  0,  6,112,  0, 15
   DEFB    96,  0,  7,128,  0,  3,128,  0
   DEFB    96, 64,  0,124,224,  0, 62,112
   DEFB     0, 61,160,  0, 58,194,  0, 23
   DEFB   247,  0, 27,255,128, 47,251,128
   DEFB   119,249,128, 59,254,  0, 19,254
   DEFB     0,  1,252,  0,  3, 56,  0,  7
   DEFB   176,  0,  3,192,  0,  1,192,  0
   DEFB    48, 32,  0, 62,112,  0, 31, 56
   DEFB     0, 30,208,  0, 29, 97,  0, 11
   DEFB   251,128, 13,255,192, 23,253,192
   DEFB    59,252,192, 29,255,  0,  9,255
   DEFB     0,  0,254,  0,  1,156,  0,  3
   DEFB   216,  0,  1,224,  0,  0,224,  0
   DEFB    24, 16,  0, 31, 56,  0, 15,156
   DEFB     0, 15,104,  0, 14,176,128,  5
   DEFB   253,192,  6,255,224, 11,254,224
   DEFB    29,254, 96, 14,255,128,  4,255
   DEFB   128,  0,127,  0,  0,206,  0,  1
   DEFB   236,  0,  0,240,  0,  0,112,  0
   DEFB    12,  8,  0, 15,156,  0,  7,206
   DEFB     0,  7,180,  0,  7, 88, 64,  2
   DEFB   254,224,  3,127,240,  5,255,112
   DEFB    14,255, 48,  7,127,192,  2,127
   DEFB   192,  0, 63,128,  0,103,  0,  0
   DEFB   246,  0,  0,120,  0,  0, 56,  0
   DEFB     6,  4,  0,  7,206,  0,  3,231
   DEFB     0,  3,218,  0,  3,172, 32,  1
   DEFB   127,112,  1,191,248,  2,255,184
   DEFB     7,127,152,  3,191,224,  1, 63
   DEFB   224,  0, 31,192,  0, 51,128,  0
   DEFB   123,  0,  0, 60,  0,  0, 28,  0
   DEFB     3,  2,  0,  3,231,  0,  1,243
   DEFB   128,  1,237,  0,  1,214, 16,  0
   DEFB   191,184,  0,223,252,  1,127,220
   DEFB     3,191,204,  1,223,240,  0,159
   DEFB   240,  0, 15,224,  0, 25,192,  0
   DEFB    61,128,  0, 30,  0,  0, 14,  0
   DEFB     1,129,  0,  1,243,128,  0,249
   DEFB   192,  0,246,128,  0,235,  8,  0
   DEFB    95,220,  0,111,254,  0,191,238
   DEFB     1,223,230,  0,239,248,  0, 79
   DEFB   248,  0,  7,240,  0, 12,224,  0
   DEFB    30,192,  0, 15,  0,  0,  7,  0
END ASM

COCHEDOS:                                   'CAR TWO GRAPHICS. N,NE,E,SE,S,SW,W,NW
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain

;GRAPHIC DATA:
;Pixel Size:      ( 24,  16)
;Char Size:       (  3,   2)
;Frames:             8
;Sort Priorities: X char, Char line, Y char, Frame number
;Data Outputted:  Gfx
;Interleave:      Sprite
;Mask:            No

coche2_n_r:
   DEFB     7,224,  0,  1,128,  0,  2, 64
   DEFB     0,  6, 96,  0,  7,224,  0, 54
   DEFB   108,  0, 61,188,  0, 53,172,  0
   DEFB     4, 32,  0,  6, 96,  0,  5,160
   DEFB     0, 55,236,  0, 59,220,  0, 57
   DEFB   156,  0, 51,204,  0, 15,240,  0
   DEFB     3,240,  0,  0,192,  0,  1, 32
   DEFB     0,  3, 48,  0,  3,240,  0, 27
   DEFB    54,  0, 30,222,  0, 26,214,  0
   DEFB     2, 16,  0,  3, 48,  0,  2,208
   DEFB     0, 27,246,  0, 29,238,  0, 28
   DEFB   206,  0, 25,230,  0,  7,248,  0
   DEFB     1,248,  0,  0, 96,  0,  0,144
   DEFB     0,  1,152,  0,  1,248,  0, 13
   DEFB   155,  0, 15,111,  0, 13,107,  0
   DEFB     1,  8,  0,  1,152,  0,  1,104
   DEFB     0, 13,251,  0, 14,247,  0, 14
   DEFB   103,  0, 12,243,  0,  3,252,  0
   DEFB     0,252,  0,  0, 48,  0,  0, 72
   DEFB     0,  0,204,  0,  0,252,  0,  6
   DEFB   205,128,  7,183,128,  6,181,128
   DEFB     0,132,  0,  0,204,  0,  0,180
   DEFB     0,  6,253,128,  7,123,128,  7
   DEFB    51,128,  6,121,128,  1,254,  0
   DEFB     0,126,  0,  0, 24,  0,  0, 36
   DEFB     0,  0,102,  0,  0,126,  0,  3
   DEFB   102,192,  3,219,192,  3, 90,192
   DEFB     0, 66,  0,  0,102,  0,  0, 90
   DEFB     0,  3,126,192,  3,189,192,  3
   DEFB   153,192,  3, 60,192,  0,255,  0
   DEFB     0, 63,  0,  0, 12,  0,  0, 18
   DEFB     0,  0, 51,  0,  0, 63,  0,  1
   DEFB   179, 96,  1,237,224,  1,173, 96
   DEFB     0, 33,  0,  0, 51,  0,  0, 45
   DEFB     0,  1,191, 96,  1,222,224,  1
   DEFB   204,224,  1,158, 96,  0,127,128
   DEFB     0, 31,128,  0,  6,  0,  0,  9
   DEFB     0,  0, 25,128,  0, 31,128,  0
   DEFB   217,176,  0,246,240,  0,214,176
   DEFB     0, 16,128,  0, 25,128,  0, 22
   DEFB   128,  0,223,176,  0,239,112,  0
   DEFB   230,112,  0,207, 48,  0, 63,192
   DEFB     0, 15,192,  0,  3,  0,  0,  4
   DEFB   128,  0, 12,192,  0, 15,192,  0
   DEFB   108,216,  0,123,120,  0,107, 88
   DEFB     0,  8, 64,  0, 12,192,  0, 11
   DEFB    64,  0,111,216,  0,119,184,  0
   DEFB   115, 56,  0,103,152,  0, 31,224
   
coche2_ne_r:
   DEFB     1, 16,  0,  3,140,  0,  7,118
   DEFB     0,  2,226,  0, 33,181,  0,119
   DEFB    92,  0,238,232,  0, 78, 90,  0
   DEFB    12, 55,  0,102,238,  0, 63,228
   DEFB     0, 29,192,  0, 12, 32,  0,  6
   DEFB   112,  0,  2,224,  0,  0, 64,  0
   DEFB     0,136,  0,  1,198,  0,  3,187
   DEFB     0,  1,113,  0, 16,218,128, 59
   DEFB   174,  0,119,116,  0, 39, 45,  0
   DEFB     6, 27,128, 51,119,  0, 31,242
   DEFB     0, 14,224,  0,  6, 16,  0,  3
   DEFB    56,  0,  1,112,  0,  0, 32,  0
   DEFB     0, 68,  0,  0,227,  0,  1,221
   DEFB   128,  0,184,128,  8,109, 64, 29
   DEFB   215,  0, 59,186,  0, 19,150,128
   DEFB     3, 13,192, 25,187,128, 15,249
   DEFB     0,  7,112,  0,  3,  8,  0,  1
   DEFB   156,  0,  0,184,  0,  0, 16,  0
   DEFB     0, 34,  0,  0,113,128,  0,238
   DEFB   192,  0, 92, 64,  4, 54,160, 14
   DEFB   235,128, 29,221,  0,  9,203, 64
   DEFB     1,134,224, 12,221,192,  7,252
   DEFB   128,  3,184,  0,  1,132,  0,  0
   DEFB   206,  0,  0, 92,  0,  0,  8,  0
   DEFB     0, 17,  0,  0, 56,192,  0,119
   DEFB    96,  0, 46, 32,  2, 27, 80,  7
   DEFB   117,192, 14,238,128,  4,229,160
   DEFB     0,195,112,  6,110,224,  3,254
   DEFB    64,  1,220,  0,  0,194,  0,  0
   DEFB   103,  0,  0, 46,  0,  0,  4,  0
   DEFB     0,  8,128,  0, 28, 96,  0, 59
   DEFB   176,  0, 23, 16,  1, 13,168,  3
   DEFB   186,224,  7,119, 64,  2,114,208
   DEFB     0, 97,184,  3, 55,112,  1,255
   DEFB    32,  0,238,  0,  0, 97,  0,  0
   DEFB    51,128,  0, 23,  0,  0,  2,  0
   DEFB     0,  4, 64,  0, 14, 48,  0, 29
   DEFB   216,  0, 11,136,  0,134,212,  1
   DEFB   221,112,  3,187,160,  1, 57,104
   DEFB     0, 48,220,  1,155,184,  0,255
   DEFB   144,  0,119,  0,  0, 48,128,  0
   DEFB    25,192,  0, 11,128,  0,  1,  0
   DEFB     0,  2, 32,  0,  7, 24,  0, 14
   DEFB   236,  0,  5,196,  0, 67,106,  0
   DEFB   238,184,  1,221,208,  0,156,180
   DEFB     0, 24,110,  0,205,220,  0,127
   DEFB   200,  0, 59,128,  0, 24, 64,  0
   DEFB    12,224,  0,  5,192,  0,  0,128
       
coche2_e_r:
   DEFB     0,  0,  0,  0,  0,  0,120,224
   DEFB     0,120,224,  0,176, 64,  0,143
   DEFB   249,  0,218, 61,  0,252,211,  0
   DEFB   252,211,  0,218, 61,  0,143,249
   DEFB     0,176, 64,  0,120,224,  0,120
   DEFB   224,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 60,112
   DEFB     0, 60,112,  0, 88, 32,  0, 71
   DEFB   252,128,109, 30,128,126,105,128
   DEFB   126,105,128,109, 30,128, 71,252
   DEFB   128, 88, 32,  0, 60,112,  0, 60
   DEFB   112,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 30, 56
   DEFB     0, 30, 56,  0, 44, 16,  0, 35
   DEFB   254, 64, 54,143, 64, 63, 52,192
   DEFB    63, 52,192, 54,143, 64, 35,254
   DEFB    64, 44, 16,  0, 30, 56,  0, 30
   DEFB    56,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0, 15, 28
   DEFB     0, 15, 28,  0, 22,  8,  0, 17
   DEFB   255, 32, 27, 71,160, 31,154, 96
   DEFB    31,154, 96, 27, 71,160, 17,255
   DEFB    32, 22,  8,  0, 15, 28,  0, 15
   DEFB    28,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  7,142
   DEFB     0,  7,142,  0, 11,  4,  0,  8
   DEFB   255,144, 13,163,208, 15,205, 48
   DEFB    15,205, 48, 13,163,208,  8,255
   DEFB   144, 11,  4,  0,  7,142,  0,  7
   DEFB   142,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  3,199
   DEFB     0,  3,199,  0,  5,130,  0,  4
   DEFB   127,200,  6,209,232,  7,230,152
   DEFB     7,230,152,  6,209,232,  4,127
   DEFB   200,  5,130,  0,  3,199,  0,  3
   DEFB   199,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  1,227
   DEFB   128,  1,227,128,  2,193,  0,  2
   DEFB    63,228,  3,104,244,  3,243, 76
   DEFB     3,243, 76,  3,104,244,  2, 63
   DEFB   228,  2,193,  0,  1,227,128,  1
   DEFB   227,128,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,241
   DEFB   192,  0,241,192,  1, 96,128,  1
   DEFB    31,242,  1,180,122,  1,249,166
   DEFB     1,249,166,  1,180,122,  1, 31
   DEFB   242,  1, 96,128,  0,241,192,  0
   DEFB   241,192,  0,  0,  0,  0,  0,  0

coche2_se_r:
   DEFB     0, 64,  0,  2,224,  0,  6,112
   DEFB     0, 12, 32,  0, 29,192,  0, 63
   DEFB   228,  0,102,238,  0, 12, 55,  0
   DEFB    78, 90,  0,238,236,  0,119, 92
   DEFB     0, 33,181,  0,  2,226,  0,  7
   DEFB    54,  0,  3,140,  0,  1, 16,  0
   DEFB     0, 32,  0,  1,112,  0,  3, 56
   DEFB     0,  6, 16,  0, 14,224,  0, 31
   DEFB   242,  0, 51,119,  0,  6, 27,128
   DEFB    39, 45,  0,119,118,  0, 59,174
   DEFB     0, 16,218,128,  1,113,  0,  3
   DEFB   155,  0,  1,198,  0,  0,136,  0
   DEFB     0, 16,  0,  0,184,  0,  1,156
   DEFB     0,  3,  8,  0,  7,112,  0, 15
   DEFB   249,  0, 25,187,128,  3, 13,192
   DEFB    19,150,128, 59,187,  0, 29,215
   DEFB     0,  8,109, 64,  0,184,128,  1
   DEFB   205,128,  0,227,  0,  0, 68,  0
   DEFB     0,  8,  0,  0, 92,  0,  0,206
   DEFB     0,  1,132,  0,  3,184,  0,  7
   DEFB   252,128, 12,221,192,  1,134,224
   DEFB     9,203, 64, 29,221,128, 14,235
   DEFB   128,  4, 54,160,  0, 92, 64,  0
   DEFB   230,192,  0,113,128,  0, 34,  0
   DEFB     0,  4,  0,  0, 46,  0,  0,103
   DEFB     0,  0,194,  0,  1,220,  0,  3
   DEFB   254, 64,  6,110,224,  0,195,112
   DEFB     4,229,160, 14,238,192,  7,117
   DEFB   192,  2, 27, 80,  0, 46, 32,  0
   DEFB   115, 96,  0, 56,192,  0, 17,  0
   DEFB     0,  2,  0,  0, 23,  0,  0, 51
   DEFB   128,  0, 97,  0,  0,238,  0,  1
   DEFB   255, 32,  3, 55,112,  0, 97,184
   DEFB     2,114,208,  7,119, 96,  3,186
   DEFB   224,  1, 13,168,  0, 23, 16,  0
   DEFB    57,176,  0, 28, 96,  0,  8,128
   DEFB     0,  1,  0,  0, 11,128,  0, 25
   DEFB   192,  0, 48,128,  0,119,  0,  0
   DEFB   255,144,  1,155,184,  0, 48,220
   DEFB     1, 57,104,  3,187,176,  1,221
   DEFB   112,  0,134,212,  0, 11,136,  0
   DEFB    28,216,  0, 14, 48,  0,  4, 64
   DEFB     0,  0,128,  0,  5,192,  0, 12
   DEFB   224,  0, 24, 64,  0, 59,128,  0
   DEFB   127,200,  0,205,220,  0, 24,110
   DEFB     0,156,180,  1,221,216,  0,238
   DEFB   184,  0, 67,106,  0,  5,196,  0
   DEFB    14,108,  0,  7, 24,  0,  2, 32
       
coche2_s_r:
   DEFB    15,240,  0, 51,204,  0, 57,156
   DEFB     0, 59,220,  0, 55,236,  0,  5
   DEFB   160,  0,  6, 96,  0,  4, 32,  0
   DEFB    53,172,  0, 61,188,  0, 54,108
   DEFB     0,  7,224,  0,  6, 96,  0,  2
   DEFB    64,  0,  1,128,  0,  7,224,  0
   DEFB     7,248,  0, 25,230,  0, 28,206
   DEFB     0, 29,238,  0, 27,246,  0,  2
   DEFB   208,  0,  3, 48,  0,  2, 16,  0
   DEFB    26,214,  0, 30,222,  0, 27, 54
   DEFB     0,  3,240,  0,  3, 48,  0,  1
   DEFB    32,  0,  0,192,  0,  3,240,  0
   DEFB     3,252,  0, 12,243,  0, 14,103
   DEFB     0, 14,247,  0, 13,251,  0,  1
   DEFB   104,  0,  1,152,  0,  1,  8,  0
   DEFB    13,107,  0, 15,111,  0, 13,155
   DEFB     0,  1,248,  0,  1,152,  0,  0
   DEFB   144,  0,  0, 96,  0,  1,248,  0
   DEFB     1,254,  0,  6,121,128,  7, 51
   DEFB   128,  7,123,128,  6,253,128,  0
   DEFB   180,  0,  0,204,  0,  0,132,  0
   DEFB     6,181,128,  7,183,128,  6,205
   DEFB   128,  0,252,  0,  0,204,  0,  0
   DEFB    72,  0,  0, 48,  0,  0,252,  0
   DEFB     0,255,  0,  3, 60,192,  3,153
   DEFB   192,  3,189,192,  3,126,192,  0
   DEFB    90,  0,  0,102,  0,  0, 66,  0
   DEFB     3, 90,192,  3,219,192,  3,102
   DEFB   192,  0,126,  0,  0,102,  0,  0
   DEFB    36,  0,  0, 24,  0,  0,126,  0
   DEFB     0,127,128,  1,158, 96,  1,204
   DEFB   224,  1,222,224,  1,191, 96,  0
   DEFB    45,  0,  0, 51,  0,  0, 33,  0
   DEFB     1,173, 96,  1,237,224,  1,179
   DEFB    96,  0, 63,  0,  0, 51,  0,  0
   DEFB    18,  0,  0, 12,  0,  0, 63,  0
   DEFB     0, 63,192,  0,207, 48,  0,230
   DEFB   112,  0,239,112,  0,223,176,  0
   DEFB    22,128,  0, 25,128,  0, 16,128
   DEFB     0,214,176,  0,246,240,  0,217
   DEFB   176,  0, 31,128,  0, 25,128,  0
   DEFB     9,  0,  0,  6,  0,  0, 31,128
   DEFB     0, 31,224,  0,103,152,  0,115
   DEFB    56,  0,119,184,  0,111,216,  0
   DEFB    11, 64,  0, 12,192,  0,  8, 64
   DEFB     0,107, 88,  0,123,120,  0,108
   DEFB   216,  0, 15,192,  0, 12,192,  0
   DEFB     4,128,  0,  3,  0,  0, 15,192

coche2_sw_r:
   DEFB     2,  0,  0,  7, 64,  0, 14, 96
   DEFB     0,  4, 48,  0,  3,184,  0, 39
   DEFB   252,  0,119,102,  0,236, 48,  0
   DEFB    90,114,  0, 23,119,  0, 58,238
   DEFB     0,173,132,  0, 71, 64,  0,110
   DEFB   224,  0, 49,192,  0,  8,128,  0
   DEFB     1,  0,  0,  3,160,  0,  7, 48
   DEFB     0,  2, 24,  0,  1,220,  0, 19
   DEFB   254,  0, 59,179,  0,118, 24,  0
   DEFB    45, 57,  0, 11,187,128, 29,119
   DEFB     0, 86,194,  0, 35,160,  0, 55
   DEFB   112,  0, 24,224,  0,  4, 64,  0
   DEFB     0,128,  0,  1,208,  0,  3,152
   DEFB     0,  1, 12,  0,  0,238,  0,  9
   DEFB   255,  0, 29,217,128, 59, 12,  0
   DEFB    22,156,128,  5,221,192, 14,187
   DEFB   128, 43, 97,  0, 17,208,  0, 27
   DEFB   184,  0, 12,112,  0,  2, 32,  0
   DEFB     0, 64,  0,  0,232,  0,  1,204
   DEFB     0,  0,134,  0,  0,119,  0,  4
   DEFB   255,128, 14,236,192, 29,134,  0
   DEFB    11, 78, 64,  2,238,224,  7, 93
   DEFB   192, 21,176,128,  8,232,  0, 13
   DEFB   220,  0,  6, 56,  0,  1, 16,  0
   DEFB     0, 32,  0,  0,116,  0,  0,230
   DEFB     0,  0, 67,  0,  0, 59,128,  2
   DEFB   127,192,  7,118, 96, 14,195,  0
   DEFB     5,167, 32,  1,119,112,  3,174
   DEFB   224, 10,216, 64,  4,116,  0,  6
   DEFB   238,  0,  3, 28,  0,  0,136,  0
   DEFB     0, 16,  0,  0, 58,  0,  0,115
   DEFB     0,  0, 33,128,  0, 29,192,  1
   DEFB    63,224,  3,187, 48,  7, 97,128
   DEFB     2,211,144,  0,187,184,  1,215
   DEFB   112,  5,108, 32,  2, 58,  0,  3
   DEFB   119,  0,  1,142,  0,  0, 68,  0
   DEFB     0,  8,  0,  0, 29,  0,  0, 57
   DEFB   128,  0, 16,192,  0, 14,224,  0
   DEFB   159,240,  1,221,152,  3,176,192
   DEFB     1,105,200,  0, 93,220,  0,235
   DEFB   184,  2,182, 16,  1, 29,  0,  1
   DEFB   187,128,  0,199,  0,  0, 34,  0
   DEFB     0,  4,  0,  0, 14,128,  0, 28
   DEFB   192,  0,  8, 96,  0,  7,112,  0
   DEFB    79,248,  0,238,204,  1,216, 96
   DEFB     0,180,228,  0, 46,238,  0,117
   DEFB   220,  1, 91,  8,  0,142,128,  0
   DEFB   221,192,  0, 99,128,  0, 17,  0
       
coche2_w_r:
   DEFB     0,  0,  0,  0,  0,  0,  7, 30
   DEFB     0,  7, 30,  0,  2, 13,  0,159
   DEFB   241,  0,188, 91,  0,203, 63,  0
   DEFB   203, 63,  0,188, 91,  0,159,241
   DEFB     0,  2, 13,  0,  7, 30,  0,  7
   DEFB    30,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  3,143
   DEFB     0,  3,143,  0,  1,  6,128, 79
   DEFB   248,128, 94, 45,128,101,159,128
   DEFB   101,159,128, 94, 45,128, 79,248
   DEFB   128,  1,  6,128,  3,143,  0,  3
   DEFB   143,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  1,199
   DEFB   128,  1,199,128,  0,131, 64, 39
   DEFB   252, 64, 47, 22,192, 50,207,192
   DEFB    50,207,192, 47, 22,192, 39,252
   DEFB    64,  0,131, 64,  1,199,128,  1
   DEFB   199,128,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,227
   DEFB   192,  0,227,192,  0, 65,160, 19
   DEFB   254, 32, 23,139, 96, 25,103,224
   DEFB    25,103,224, 23,139, 96, 19,254
   DEFB    32,  0, 65,160,  0,227,192,  0
   DEFB   227,192,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,113
   DEFB   224,  0,113,224,  0, 32,208,  9
   DEFB   255, 16, 11,197,176, 12,179,240
   DEFB    12,179,240, 11,197,176,  9,255
   DEFB    16,  0, 32,208,  0,113,224,  0
   DEFB   113,224,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 56
   DEFB   240,  0, 56,240,  0, 16,104,  4
   DEFB   255,136,  5,226,216,  6, 89,248
   DEFB     6, 89,248,  5,226,216,  4,255
   DEFB   136,  0, 16,104,  0, 56,240,  0
   DEFB    56,240,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 28
   DEFB   120,  0, 28,120,  0,  8, 52,  2
   DEFB   127,196,  2,241,108,  3, 44,252
   DEFB     3, 44,252,  2,241,108,  2,127
   DEFB   196,  0,  8, 52,  0, 28,120,  0
   DEFB    28,120,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0, 14
   DEFB    60,  0, 14, 60,  0,  4, 26,  1
   DEFB    63,226,  1,120,182,  1,150,126
   DEFB     1,150,126,  1,120,182,  1, 63
   DEFB   226,  0,  4, 26,  0, 14, 60,  0
   DEFB    14, 60,  0,  0,  0,  0,  0,  0

coche2_nw_r:
   DEFB     8,128,  0, 49,192,  0,108,224
   DEFB     0, 71, 64,  0,173,132,  0, 58
   DEFB   238,  0, 55,119,  0, 90,114,  0
   DEFB   236, 48,  0,119,102,  0, 39,252
   DEFB     0,  3,184,  0,  4, 48,  0, 14
   DEFB    96,  0,  7, 64,  0,  2,  0,  0
   DEFB     4, 64,  0, 24,224,  0, 54,112
   DEFB     0, 35,160,  0, 86,194,  0, 29
   DEFB   119,  0, 27,187,128, 45, 57,  0
   DEFB   118, 24,  0, 59,179,  0, 19,254
   DEFB     0,  1,220,  0,  2, 24,  0,  7
   DEFB    48,  0,  3,160,  0,  1,  0,  0
   DEFB     2, 32,  0, 12,112,  0, 27, 56
   DEFB     0, 17,208,  0, 43, 97,  0, 14
   DEFB   187,128, 13,221,192, 22,156,128
   DEFB    59, 12,  0, 29,217,128,  9,255
   DEFB     0,  0,238,  0,  1, 12,  0,  3
   DEFB   152,  0,  1,208,  0,  0,128,  0
   DEFB     1, 16,  0,  6, 56,  0, 13,156
   DEFB     0,  8,232,  0, 21,176,128,  7
   DEFB    93,192,  6,238,224, 11, 78, 64
   DEFB    29,134,  0, 14,236,192,  4,255
   DEFB   128,  0,119,  0,  0,134,  0,  1
   DEFB   204,  0,  0,232,  0,  0, 64,  0
   DEFB     0,136,  0,  3, 28,  0,  6,206
   DEFB     0,  4,116,  0, 10,216, 64,  3
   DEFB   174,224,  3,119,112,  5,167, 32
   DEFB    14,195,  0,  7,118, 96,  2,127
   DEFB   192,  0, 59,128,  0, 67,  0,  0
   DEFB   230,  0,  0,116,  0,  0, 32,  0
   DEFB     0, 68,  0,  1,142,  0,  3,103
   DEFB     0,  2, 58,  0,  5,108, 32,  1
   DEFB   215,112,  1,187,184,  2,211,144
   DEFB     7, 97,128,  3,187, 48,  1, 63
   DEFB   224,  0, 29,192,  0, 33,128,  0
   DEFB   115,  0,  0, 58,  0,  0, 16,  0
   DEFB     0, 34,  0,  0,199,  0,  1,179
   DEFB   128,  1, 29,  0,  2,182, 16,  0
   DEFB   235,184,  0,221,220,  1,105,200
   DEFB     3,176,192,  1,221,152,  0,159
   DEFB   240,  0, 14,224,  0, 16,192,  0
   DEFB    57,128,  0, 29,  0,  0,  8,  0
   DEFB     0, 17,  0,  0, 99,128,  0,217
   DEFB   192,  0,142,128,  1, 91,  8,  0
   DEFB   117,220,  0,110,238,  0,180,228
   DEFB     1,216, 96,  0,238,204,  0, 79
   DEFB   248,  0,  7,112,  0,  8, 96,  0
   DEFB    28,192,  0, 14,128,  0,  4,  0
       
END ASM
' GRAFICOS


GFXCIRCUITOS:                               'CURSES GRAPHICS AND ATTRS
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain

;GRAPHIC DATA:
;Pixel Size:      ( 80,  32)
;Char Size:       ( 10,   4)
;Sort Priorities: Char line, X char, Y char
;Data Outputted:  Gfx
;Interleave:      Character
;Mask:            No

gfxcircuitos:
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB   204,204, 51, 51,204,204, 51, 51
   DEFB     0,  0,  7, 31, 31, 63, 60, 60
   DEFB     0,  0,  7, 31, 31, 63, 60, 60
   DEFB     0,  0,224,248,248,252, 60, 60
   DEFB     0,  0,224,248,248,252, 60, 60
   DEFB    60, 60,252,248,248,224,  0,  0
   DEFB    60, 60,252,248,248,224,  0,  0
   DEFB    60, 60, 63, 63, 31,  7,  0,  0
   DEFB    60, 60, 63, 31, 31,  7,  0,  0
   DEFB    60, 60, 60, 60, 60, 60, 60, 60
   DEFB    60, 60, 60, 60, 60, 60, 60, 60
   DEFB     0,  0,255,255,255,255,  0,  0
   DEFB     0,  0,255,255,255,255,  0,  0
   DEFB   170, 85,170, 85,170, 85,170, 85
   DEFB    73,146, 36, 73,146, 36, 73,146
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB    40, 84,170, 85,170, 85, 42, 20
   DEFB   170, 85,170, 85,170, 85,170, 85
   DEFB   170, 85,170, 85,170, 85,170, 85
   DEFB   170, 85,170, 85,170, 85,170, 85
   DEFB   170, 85,170, 85,170, 85,170, 85
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
   DEFB     0,  0,  0,  0,  0,  0,  0,  0
END ASM

ATTRCIRCUITOS:
ASM
gfxcircuitosATTR:
   DEFB    66, 71, 66, 71, 66, 71, 66, 71
   DEFB    66, 71, 66, 71, 66, 71,  4,  1
   DEFB     3,  5,  6,  4,  7,  1, 22, 10
   DEFB    13, 38, 56, 56, 56, 56, 56, 56
   DEFB    56, 56, 56, 56, 56, 56, 56, 56
END ASM

CIRCUITOUNO:                            'CURSES BINARIES (MADE WITH MAPPY)
ASM
incbin "circuitouno.map"
incbin "circuitodos.map"
incbin "circuitotres.map"
incbin "circuitocuatro.map"
incbin "circuitocinco.map"
incbin "circuitoseis.map"
END ASM
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Sat Aug 10, 2013 4:34 pm

Re: COCHES & CICLOPES (Y SATURNO)

The map binaries. They are made with Mappy using the .png included in the zipped archive.

If anyone want to create a new track, don't forget to include as a binary at the end of the code (incibin "circuitoequis.map) and increase the max number of tracks at the beggining of the code
Attachments
coches hector.zip
(2.26 KiB) Downloaded 94 times
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Sun Aug 11, 2013 8:24 am

Re: COCHES & CICLOPES (Y SATURNO)

Here goes the sprite routine. You have to name it sprite3.bas (or change the incluide statement in the main program listing)

  Code:
'XOR SPRITE SUBROUTINE. HERE WE JUST POKE THE COORDINATES IN THE FORM (X COORD,Y COORD,GFX ADDRESS,PREVIOUS X COORD, PREVIOUS Y COORD, PREVIOUS GFX ADDRESS)
SUB xorsprite (xd as ubyte,yd as ubyte, gfx as uinteger, xda as ubyte, yda as ubyte, gfxa as uinteger)
POKE @esprite,xd: POKE @esprite+1,yd: POKE Uinteger (@esprite+2),gfx
POKE @esprite+4,xda: POKE @esprite+5,yda: POKE Uinteger (@esprite+6),gfxa
gosub printsprite
END SUB

'SUBROUTINE TO SELECT THE HEIGHT OF THE SPRITE (TO SKIP SOME CYCLES IF WE DON'T NEED TO PRINT 16 LINES)
SUB spriteh (h as ubyte)
POKE @altura+1,h-1
END SUB

'MEMORY LOCATIONS WHERE WE KEEP THE COORDINATES AND THE GRAPHICS ADDRESSES
esprite:
ASM
xp: defb 0
yp: defb 0
gfxdir: defw 0
xpa: defb 0
ypa: defb 0
gfxant: defw 0
END ASM


'XORing ROUTINE. IT'S A VERY SIMPLE AND STRIGHTFORWARD ROUTINE WITH NO OPTIMIZATION, BUT I'M VERY HAPPY WITH THE RESULT BEING IT MY FIRST ATTEMP AT M/C
'IT MAKES USE OF TWO ROUTINES: SCADD TO CALCULATE THE SCREEN ADDRESS GIVEN THE X AND Y COORDINATES. THIS IS BORROWED FROM J.CAULDWELL'S "HOW TO WRITE
'ZX SPECTRUM GAMES" TUTORIAL. AND UPHL, A LITTLE ROUTINE TO CALCULATE THE SCREEN ADDRESS OF THE LINE BELLOW THE CURRENT ADDRESS. I HAVE CHANGED IT FOR
'CONVENIENCE TO UPDE. I CAN'T REMEMBER WHERE I TOOK IT FROM, PROBABLY SOME POST IN WOS.
'HOW THE ROUTINE WORKS IS EASY. WE NEED THE SPRITE ADDRESS IN HL AND THE SCREEN ADDRESS IN DE (WE PUT THE CORRDINATES IN BC AND CALL THE SCADD ROUTINE THAT
'RETURNS THE ADRESS IN DE)
'THEN WE SWAP REGISTERS AND MAKE THE SAME OPERATION WITH THE PREVIOUS SPRITE ADRRESS AND THE PREVIOUS COORDINATES.
'FROM NOW ON IT'S VERY EASY, WE JUST CLEAR (XOR) THE CONTENT OF THE PREVIOUS SCREEN POSITION, SWAP REGISTERS AND THEN PRINT THE NEW SPRITE BYTE IN THE NEW
'ADDRESS. WE DO THIS 3 TIMES (AS THE SPRITES ARE IN FACT 3 CHARACTERS WIDE, BECAUSE THEY ARE 16 PIXEL WIDE BUT PRESHIFTED TO THE RIGHT 8 TIMES)
'NOW WE CALL DE UPDE ROUTINE, DECREASE DE AND HL IN 3 (SO WE ARE IN THE CORRECT COLUMN) AND THEN REPEAT IT 15 TIMES MORE.
printsprite:
ASM
sprite:

       ld hl,(gfxdir)
       ld bc,(xp)
       call scadd          ; calculate screen address.
       exx
       ld hl,(gfxant)
       ld bc,(xpa)
       call scadd         ;ahora tenemos en los dos sets de registros alternativos(actual y anterior): direccion del grafico en hl, dirección de pantalla en de

       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a           ;pintamos el primer byte, primero el anterior (alternativo) y luego el actual

       inc hl
       inc de
       exx
       inc hl
       inc de

       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a          ;pintamos el segundo byte

       inc hl
       inc de
       exx
       inc hl
       inc de

       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a          ;pintamos el tercer byte
END ASM
altura:
ASM
       ld b,15

repeticiones:
       dec de
       dec de
       call upde
       inc hl
       exx
       dec de
       dec de
       call upde
       inc hl

       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a           ;pintamos el primer byte, primero el anterior (alternativo) y luego el actual

       inc hl
       inc de
       exx
       inc hl
       inc de

       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a          ;pintamos el segundo byte

       inc hl
       inc de
       exx
       inc hl
       inc de
       
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a
       exx
       ld a,(de)
       ld c,a
       ld a,(hl)
       xor c
       ld (de),a          ;pintamos el tercer byte

       djnz repeticiones

END ASM


ASM
; This routine returns a screen address for (c, b) in de.

scadd:  ld a,c              ; get vertical position.
       and 7               ; line 0-7 within character square.
       add a,64            ; 64 * 256 = 16384 (Start of screen display)
       ld d,a              ; line * 256.
       ld a,c              ; get vertical again.
       rrca                ; multiply by 32.
       rrca
       rrca
       and 24              ; high byte of segment displacement.
       add a,d             ; add to existing screen high byte.
       ld d,a              ; that's the high byte sorted.
       ld a,c              ; 8 character squares per segment.
       rlca                ; 8 pixels per cell, mulplied by 4 = 32.
       rlca                ; cell x 32 gives position within segment.
       and 224             ; make sure it's a multiple of 32.
       ld e,a              ; vertical coordinate calculation done.
       ld a,b              ; y coordinate.
       rrca                ; only need to divide by 8.
       rrca
       rrca
       and 31              ; squares 0 - 31 across screen.
       add a,e             ; add to total so far.
       ld e,a              ; hl = address of screen.
       ret


dispx: defb 0        ; general-use coordinates.
dispy: defb 0
dispxa: defb 0
dispya: defb 0
sprtmp: defw 0          ; sprite temporary address.

;uphl:
;   inc h
;   ld a,h
;   and 7
;   ret nz
;   ld a,l
;   add a,32
;   ld l,a
;   ret c
;   ld a,h
;   sub 8
;   ld h,a
;   ret

upde:
   inc d
   ld a,d
   and 7
   ret nz
   ld a,e
   add a,32
   ld e,a
   ret c
   ld a,d
   sub 8
   ld d,a
   ret
   
END ASM




If you look at the code for this routine or the main program you will see that I'll never become another Peter Moligneux. But if you check my earlier posts in this fórum you'll probably get to the conclussion that it's posible with ZxBC to transit from zero knowledge in programming to a point where you can do some cool things and get a lot of fun trying. That's what I love about this compiler, it makes things possbile.


If anyone need any further explanation, just ask here and I'll see if I can help.


P.S. Later in the day I'll try to post the code for the cyclops game. Or better still, instead of posting the code as is I'll do a Little tweak to show just the bouncing saturn and a moving cyclop for better readability.
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Mon Aug 12, 2013 8:57 pm

Re: COCHES & CICLOPES (Y SATURNO)

As promised here goes the tweaked version of the cyclops game.

I decided to go with this "demo" versión because the code of the original game is very similar to the one in the cars, so the interest in it should be even lower :)

On top of that, this version lets me show the true purpose of the sprite routine behind these games: Act as a simple but easy to use routine that lets the novice programmer (a.k.a. "me") concentrate in other aspects of the game.

In this version there is no gameplay, but you can move the "cyclops" witn the keys QAZX and PLNM. You'll see this time 4 bouncing saturns in the screen. Pressing the Y key changes the number of saturns from 1 to 8. Given that each planet is composed by 2 sprites (the planet itself and its shadow) it can make a total of 18 sprites in the screen moving simultaneously. Obviously the speed is very compromised when reaching a high number of sprites but my goal is to show that is feasible to have a reasonable number of moving sprites controlled from basic without caring for the annoying flashing.

The code (incluides at least one routine from our personal best Zx Basic Programmer Britlion):

  Code:
REM CYCLOP'S SATURN BOUNCING PONGOLFSKET DELUXE EDITION SPECIAL VMAX FUSSBALL MASTER
#include <sinclair.bas>
#include <keys.bas>
DIM MAXSATURNOS AS UBYTE
LET MAXSATURNOS=3

INICIODELTODO:
IF MAXSATURNOS>7 THEN LET MAXSATURNOS=0: END IF
PAPER 6: BORDER 5:INK 0: CLS
FOR A=0 TO 9: PRINT AT A,0;PAPER 5;INK 0;"                                ": NEXT A
PRINT AT 1,13;PAPER 6;INK 0;"  ";AT 2,13;PAPER 6;INK 0;"  "
PRINT AT 1,17;PAPER 6;INK 0;"  ";AT 2,17;PAPER 6;INK 0;"  "
PRINT AT 8,3;PAPER 6;INK 0;"                          "
PRINT AT 7,3;PAPER 6;INK 0;"                          "
PLOT 0,0: DRAW 255,0:DRAW 0,112: DRAW -255,0: DRAW 0,-112
PLOT 0,30: DRAW 30,0: DRAW 0,52: DRAW -30,0
PLOT 255,30: DRAW -30,0: DRAW 0,52: DRAW 30,0
PLOT 128,0: DRAW 0,112
CIRCLE 128,56,20
PAPER 6
PLOT 108,136: DRAW 0,31:DRAW -10,0: DRAW 0,17: DRAW 28,0: DRAW 0,-17: DRAW -12,0: DRAW 0,-31
PLOT 140,136: DRAW 0,31:DRAW -10,0: DRAW 0,17: DRAW 28,0: DRAW 0,-17: DRAW -12,0: DRAW 0,-31
PLOT 0,112: DRAW 30,24:DRAW 195,0: DRAW 30,-24
PAPER 5
'CIRCLE 220,170,8: CIRCLE 217,172,2: CIRCLE 223,172,2: PLOT 216,167: DRAW 8,0,2
'PLOT 10,160: DRAW 8,-4,2: DRAW 12,5,3: DRAW 9,3,4: DRAW 1,8,3: DRAW -10,2,3: DRAW -8,-1,3: DRAW -10,-2,4: DRAW -2,-10,3

DIM GOLUNO, GOLDOS AS UBYTE

doubleSizePrintChar(1,13,48+MAXSATURNOS+1)




DIM X,Y,XA,YA,FRAMEX,FRAMEY,FRAMEXA,FRAMEYA AS UINTEGER
DIM XD,YD,XDA,YDA,FRAMEXD,FRAMEYD,FRAMEXDA,FRAMEYDA AS UINTEGER
DIM XS,YS,XSA,YSA,FRAMESY,FRAMESYA AS UINTEGER
DIM ALTURA,ALTURAA,VHG AS UBYTE
DIM VELSX,VELSY AS BYTE
DIM REBOTE AS INTEGER

LET GOLUNO=0: LET GOLDOS=0

LET X=80:LET Y=0: LET XA=80: LET YA=0
LET FRAMEX=(INT(X) MOD 8): LET FRAMEXA=(INT (XA) MOD 8)
IF FRAMEX THEN LET FRAMEX=8-FRAMEX: END IF
IF FRAMEXA THEN LET FRAMEXA=8-FRAMEXA: END IF
LET FRAMEY=INT(Y) MOD 8: LET FRAMEYA=INT (YA) MOD 8

LET XD=176:LET YD=240: LET XDA=176: LET YDA=240
LET FRAMEXD=(INT(XD) MOD 8): LET FRAMEXDA=(INT (XDA) MOD 8)
IF FRAMEXD THEN LET FRAMEXD=8-FRAMEXD: END IF
IF FRAMEXDA THEN LET FRAMEXDA=8-FRAMEXDA: END IF
LET FRAMEYD=INT(YD) MOD 8: LET FRAMEYDA=INT (YDA) MOD 8

LET XS=132:LET YS=121: LET XSA=132: LET YSA=121
LET FRAMESY=INT(YS) MOD 8: LET FRAMESYA=INT(YSA) MOD 8
LET ALTURA=10: LET ALTURAA=10: LET REBOTE=30: LET VHG=10
LET VELSX=0: LET VELSY=0

DIM SATURNOXY (0 TO 7,0 TO 7) AS INTEGER => {{132,121,132,121,10,10,30,10},_  'X,Y,XA,YA,ALTURA,ALTURAA,REBOTE,REBOTENEG
                                                {132,20,132,20,10,10,30,10},_
                                                {132,170,132,170,10,10,30,10},_
                                                {132,40,132,40,10,10,30,10},_
                                                {132,60,132,60,10,10,30,10},_
                                                {132,80,132,80,10,10,30,10},_
                                                {132,100,132,100,10,10,30,10},_
                                                {132,150,132,150,10,10,30,10}}


spriteh (16)
xorsprite (X,Y,@CICLOPE+(FRAMEY*384)+(FRAMEX*48),XA,YA,@vacio)

xorsprite (XD,YD,@CICLOPE+(FRAMEYD*384)+(FRAMEXD*48),XDA,YDA,@vacio)

FOR N=0 TO MAXSATURNOS
LET FRAMESY=SATURNOXY(N,1) MOD 8
spriteh (6)
xorsprite (SATURNOXY(N,0),SATURNOXY(N,1),@SOMBRA+(FRAMESY*48),SATURNOXY(N,2),SATURNOXY(N,3),@vacio)
spriteh (10)
xorsprite (SATURNOXY(N,0)-SATURNOXY(N,4),SATURNOXY(N,1),@SATURNO+(FRAMESY*48),SATURNOXY(N,2)-SATURNOXY(N,5),SATURNOXY(N,3),@vacio)
NEXT
SALTOUNO:

BUCLEPPAL:

IF MULTIKEYS(KEYX) AND Y<240 THEN LET Y=Y+1: END IF
IF MULTIKEYS(KEYZ) AND Y>0 THEN LET Y=Y-1: END IF
IF MULTIKEYS(KEYA) AND X<176 THEN LET X=X+1: END IF
IF MULTIKEYS(KEYQ) AND X>64 THEN LET X=X-1: END IF

IF MULTIKEYS(KEYM) AND YD<240 THEN LET YD=YD+1: END IF
IF MULTIKEYS(KEYN) AND YD>0 THEN LET YD=YD-1: END IF
IF MULTIKEYS(KEYL) AND XD<176 THEN LET XD=XD+1: END IF
IF MULTIKEYS(KEYP) AND XD>64 THEN LET XD=XD-1: END IF

IF MULTIKEYS(KEYY) THEN LET MAXSATURNOS=MAXSATURNOS+1: GOTO INICIODELTODO: END IF

LET XS=XS+VELSX: IF (XS>185 OR XS<80) THEN LET XS=XSA: LET VELSX=VELSX*-1: END IF
LET YS=YS+VELSY: IF (YS>240 OR YS<1) THEN LET YS=YSA: LET VELSY=VELSY*-1: GOSUB GOL: END IF

LET FRAMEY=INT(Y) MOD 8: LET FRAMEYA=INT (YA) MOD 8
LET FRAMEX=(INT(X) MOD 8): LET FRAMEXA=(INT (XA) MOD 8)
IF FRAMEX THEN LET FRAMEX=8-FRAMEX: END IF
IF FRAMEXA THEN LET FRAMEXA=8-FRAMEXA: END IF

LET FRAMEYD=INT(YD) MOD 8: LET FRAMEYDA=INT (YDA) MOD 8
LET FRAMEXD=(INT(XD) MOD 8): LET FRAMEXDA=(INT (XDA) MOD 8)
IF FRAMEXD THEN LET FRAMEXD=8-FRAMEXD: END IF
IF FRAMEXDA THEN LET FRAMEXDA=8-FRAMEXDA: END IF

'LET REBOTE=REBOTE-INT(REBOTE/VHG)
'LET ALTURA=ALTURA+INT(REBOTE/VHG)-1: IF ALTURA<6 THEN LET REBOTE=40: GOSUB FRENAZO: END IF      'REBOTE=11 PARADO   LET VELSX=0: LET VELSY=0
'LET FRAMESY=INT(YS) MOD 8: LET FRAMESYA=INT(YSA) MOD 8

'IF ALTURA<14 AND (X-XS)>65526 AND ((Y-YS)-4)>65528 THEN GOSUB CHOQUEUNO: END IF
'IF ALTURA<14 AND (XD-XS)>65526 AND ((YD-YS)-4)>65528 THEN GOSUB CHOQUEDOS: END IF

spriteh (16)
xorsprite (X,Y,@CICLOPE+(FRAMEY*384)+(FRAMEX*48),XA,YA,@CICLOPE+(FRAMEYA*384)+(FRAMEXA*48))
xorsprite (XD,YD,@CICLOPE+(FRAMEYD*384)+(FRAMEXD*48),XDA,YDA,@CICLOPE+(FRAMEYDA*384)+(FRAMEXDA*48))
'spriteh (6)
'xorsprite (XS,YS,@SOMBRA+(FRAMESY*48),XSA,YSA,@SOMBRA+(FRAMESYA*48))
'spriteh (10)
'xorsprite (XS-ALTURA,YS,@SATURNO+(FRAMESY*48),XSA-ALTURAA,YSA,@SATURNO+(FRAMESYA*48))

FOR N=0 TO MAXSATURNOS
LET SATURNOXY(N,6)=SATURNOXY(N,6)-INT (SATURNOXY(N,6)/SATURNOXY(N,7))
LET SATURNOXY(N,4)=SATURNOXY(N,4)+INT (SATURNOXY(N,6)/SATURNOXY(N,7))-1: IF SATURNOXY(N,4)<6 THEN LET SATURNOXY(N,6)=40+INT(RND*80): GOSUB FRENAZO: END IF
LET FRAMESY=SATURNOXY(N,1) MOD 8
LET FRAMESYA=SATURNOXY(N,3) MOD 8
spriteh (6)
xorsprite (SATURNOXY(N,0),SATURNOXY(N,1),@SOMBRA+(FRAMESY*48),SATURNOXY(N,2),SATURNOXY(N,3),@SOMBRA+(FRAMESYA*48))
spriteh (10)
xorsprite (SATURNOXY(N,0)-SATURNOXY(N,4),SATURNOXY(N,1),@SATURNO+(FRAMESY*48),SATURNOXY(N,2)-SATURNOXY(N,5),SATURNOXY(N,3),@SATURNO+(FRAMESYA*48))
NEXT

SALTODOS:
LET YA=Y: LET XA=X
LET YDA=YD: LET XDA=XD
LET XSA=XS: LET YSA=YS: LET ALTURAA=ALTURA
FOR N=0 TO 7
LET SATURNOXY(N,2)=SATURNOXY(N,0): LET SATURNOXY(N,3)=SATURNOXY(N,1): LET SATURNOXY(N,5)=SATURNOXY(N,4)
NEXT
GOTO BUCLEPPAL

STOP

CHOQUEUNO:
LET VELSX=65531-(X-XS)
LET VELSY=65532-((Y-YS)-4)
LET REBOTE=(ABS(VELSX)+ABS(VELSY))*25: IF REBOTE<40 THEN LET REBOTE=40: END IF
RETURN

CHOQUEDOS:
LET VELSX=65531-(XD-XS)
LET VELSY=65532-((YD-YS)-4)
LET REBOTE=(ABS(VELSX)+ABS(VELSY))*25: IF REBOTE<40 THEN LET REBOTE=40: END IF
RETURN

FRENAZO:
IF VELSX THEN LET VELSX=(ABS(VELSX)-0.5)*(ABS(VELSX)/VELSX): END IF
IF VELSY THEN LET VELSY=(ABS(VELSY)-0.8)*(ABS(VELSY)/VELSY): END IF

RETURN

GOL:
IF ALTURA<40 AND XS<155 AND XS>110 THEN GOSUB GOLAZO: END IF
RETURN

GOLAZO:
IF YS<16 THEN LET GOLUNO=GOLUNO+1: END IF
IF YS>230 THEN LET GOLDOS=GOLDOS+1: END IF
IF GOLUNO>9 THEN GOTO PLGANA: END IF
IF GOLDOS>9 THEN GOTO PLGANA: END IF
doubleSizePrintChar(1,13,48+GOLDOS)
doubleSizePrintChar(1,17,48+GOLUNO)
RETURN

PLGANA:
doubleSizePrint(7,4,"¡CAMPEONES! ")
PAUSE 1: PAUSE 0
GOTO INICIODELTODO

STOP

#include "sprite3.bas"

vacio:
ASM
vacio:
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
        DEFB 0,0,0,0,0,0,0,0
END ASM

CICLOPE:
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain
;GRAPHIC DATA:
;Pixel Size:      ( 24,  16)
;Char Size:       (  3,   2)
;Frames:             8
;Sort Priorities: X char, Char line, Y char, Frame number
;Data Outputted:  Gfx
;Interleave:      Sprite
;Mask:            No

ciclop_n_r:
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 60, 60,  0,121,222,  0,121
   DEFB   206,  0,249,223,  0,252, 63,  0
   DEFB   255,255,  0,255,255,  0,124, 62
   DEFB     0,123,222,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 13,240,  0, 25,216
   DEFB     0, 60, 60,  0,127,254,  0,127
   DEFB   254,  0,252, 63,  0,251,223,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,127,254,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 28, 56
   DEFB     0, 59,220,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,255,255,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,127,254,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 63,252,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,255,255,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,127,254,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 63,252,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,255,255,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,127,254,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 63,252,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,255,255,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,127,254,  0, 63,252,  0, 31
   DEFB   248,  0, 15,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 63,252,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,255,255,  0
   DEFB   255,255,  0,255,255,  0,127,254
   DEFB     0,124, 62,  0, 57,220,  0, 25
   DEFB   200,  0, 13,240,  0,  3,192,  0
   DEFB     3,192,  0, 15,240,  0, 31,248
   DEFB     0, 63,252,  0,127,254,  0,127
   DEFB   254,  0,255,255,  0,252, 63,  0
   DEFB   249,223,  0,249,207,  0,121,222
   DEFB     0,124, 62,  0, 63,252,  0, 31
   DEFB   248,  0, 12, 48,  0,  3,192,  0
 
ciclop_ne_r:
   DEFB     1,224,  0,  7,248,  0, 15,252
   DEFB     0, 31,158,  0, 63, 47,  0, 62
   DEFB   119,  0,127,119,128,127,167,128
   DEFB   127,199,128,103,255,128, 59,255
   DEFB     0, 61,255,  0, 30,254,  0, 14
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  6,120,  0, 15,116
   DEFB     0, 31,166,  0, 63,199,  0, 39
   DEFB   255,  0,123,255,128,125,255,128
   DEFB   126,255,128,126,255,128, 63,255
   DEFB     0, 63,255,  0, 31,254,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  7,248,  0, 11,252
   DEFB     0, 29,254,  0, 62,255,  0, 62
   DEFB   255,  0,127,255,128,127,255,128
   DEFB   127,255,128,127,255,128, 63,255
   DEFB     0, 63,255,  0, 31,254,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  6,248,  0, 15,252
   DEFB     0, 31,254,  0, 63,255,  0, 63
   DEFB   255,  0,127,255,128,127,255,128
   DEFB   127,255,128,127,255,128, 63,255
   DEFB     0, 63,255,  0, 31,254,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  7,248,  0, 15,252
   DEFB     0, 31,254,  0, 63,255,  0, 63
   DEFB   255,  0,127,255,128,127,255,128
   DEFB   127,255,128,127,255,128, 63,255
   DEFB     0, 63,255,  0, 31,254,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  7,248,  0, 15,252
   DEFB     0, 31,254,  0, 63,255,  0, 63
   DEFB   255,  0,127,255,128,127,255,128
   DEFB   127,255,128,127,255,128, 63,255
   DEFB     0, 63,255,  0, 31,254,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
   DEFB     1,224,  0,  7,248,  0, 15,252
   DEFB     0, 31,254,  0, 63,255,  0, 63
   DEFB   255,  0,127,255,128,127,255,128
   DEFB   127,255,128,127,255,128, 63,255
   DEFB     0, 63,159,  0, 31, 46,  0, 14
   DEFB   116,  0,  7,120,  0,  1,224,  0
   DEFB     1,224,  0,  7,248,  0, 15,252
   DEFB     0, 31,254,  0, 63,255,  0, 63
   DEFB   255,  0,127,255,128,127,159,128
   DEFB   127, 47,128,126,119,128, 63,119
   DEFB     0, 63,167,  0, 31,198,  0, 15
   DEFB   252,  0,  7,248,  0,  1,224,  0
       
ciclop_e_r:
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 29
   DEFB   227,128, 62,193,192, 62,221,192
   DEFB    62,221,192, 62,221,192, 29,227
   DEFB   128, 31,247,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  6,194
   DEFB     0, 14,221,  0, 30,221,128, 30
   DEFB   221,128, 61,227,192, 63,247,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,220,  0,  5,226
   DEFB     0, 15,247,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  7
   DEFB   254,  0,  3,252,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 63,255,192, 31,255
   DEFB   128, 31,255,128, 15,255,  0,  5
   DEFB   226,  0,  3,204,  0,  0,240,  0
   DEFB     0,240,  0,  3,252,  0,  7,254
   DEFB     0, 15,255,  0, 31,255,128, 31
   DEFB   255,128, 63,255,192, 63,255,192
   DEFB    63,255,192, 61,227,192, 30,193
   DEFB   128, 30,221,128, 14,221,  0,  6
   DEFB   222,  0,  3,236,  0,  0,240,  0
       
ciclop_se_r:
   DEFB     0,120,  0,  1,254,  0,  3,191
   DEFB     0,  7,191,128, 15,127,192, 14
   DEFB   255,192, 25,251,224, 31,241,224
   DEFB    31,236,224, 31,222,224, 15,205
   DEFB   192, 15,195,192,  7,255,128,  3
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,251
   DEFB     0,  7,241,128, 15,236,192, 15
   DEFB   222,192, 31,205,224, 31,195,224
   DEFB    31,255,224, 31,255,224, 15,255
   DEFB   192, 15,255,192,  7,255,128,  3
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,222,  0,  3,205
   DEFB     0,  7,195,128, 15,255,192, 15
   DEFB   255,192, 31,255,224, 31,255,224
   DEFB    31,255,224, 31,255,224, 15,255
   DEFB   192, 15,255,192,  7,255,128,  3
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,255
   DEFB     0,  7,255,128, 15,255,192, 15
   DEFB   255,192, 31,255,224, 31,255,224
   DEFB    31,255,224, 31,255,224, 15,255
   DEFB   192, 15,255,192,  7,255,128,  3
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,255
   DEFB     0,  7,255,128, 15,255,192, 15
   DEFB   255,192, 31,255,224, 31,255,224
   DEFB    31,255,224, 31,255,224, 15,255
   DEFB   192, 15,255,192,  7,255,128,  3
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,255
   DEFB     0,  7,255,128, 15,255,192, 15
   DEFB   255,192, 31,255,224, 31,255,224
   DEFB    31,255,224, 31,255,224, 15,255
   DEFB   192, 15,255,192,  7,255,128,  3
   DEFB   255,  0,  1,190,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,255
   DEFB     0,  7,255,128, 15,255,192, 15
   DEFB   255,192, 31,255,224, 31,255,224
   DEFB    31,255,224, 31,255,224, 15,191
   DEFB   192, 15,191,192,  7,127,128,  2
   DEFB   255,  0,  1,254,  0,  0,120,  0
   DEFB     0,120,  0,  1,254,  0,  3,255
   DEFB     0,  7,255,128, 15,255,192, 15
   DEFB   255,192, 31,191,224, 31,191,224
   DEFB    31,127,224, 30,255,224,  9,251
   DEFB   192, 15,241,192,  7,236,128,  3
   DEFB   223,  0,  1,206,  0,  0,120,  0

 
ciclop_s_r:
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,189,224,  7
   DEFB   195,224, 15,255,240, 15,255,240
   DEFB    15,195,240, 15,185,240,  7, 57
   DEFB   224,  7,185,224,  3,195,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,195,  0,  1,255
   DEFB   128,  3,255,192,  7,195,224,  7
   DEFB   185,224, 15, 57,240, 15,185,240
   DEFB    15,195,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,255,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,185,  0,  1, 57
   DEFB   128,  3,185,192,  7,195,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,255,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,255,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,255,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,255,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,255,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,255,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,255,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,255,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,255,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,255,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,255,192,  1
   DEFB   255,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,255,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,255,240, 15,255,240,  7,255
   DEFB   224,  7,255,224,  3,189,192,  1
   DEFB   195,128,  0,255,  0,  0, 60,  0
   DEFB     0, 60,  0,  0,255,  0,  1,255
   DEFB   128,  3,255,192,  7,255,224,  7
   DEFB   255,224, 15,255,240, 15,255,240
   DEFB    15,189,240, 15,195,240,  7,255
   DEFB   224,  7,255,224,  3,195,192,  1
   DEFB   185,128,  0,251,  0,  0, 60,  0
 
ciclop_sw_r:
   DEFB     0, 30,  0,  0,127,128,  0,253
   DEFB   192,  1,253,224,  3,254,240,  3
   DEFB   255,112,  7,255,152,  7, 15,248
   DEFB     7, 55,248,  7,123,248,  3,177
   DEFB   240,  3,195,240,  1,231,224,  0
   DEFB   255,192,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1, 15,224,  3, 55,240,  3
   DEFB   123,240,  7,177,248,  7,195,248
   DEFB     7,231,248,  7,255,248,  3,255
   DEFB   240,  3,255,240,  1,255,224,  0
   DEFB   255,192,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,123,128,  0,177
   DEFB   192,  1,195,224,  3,231,240,  3
   DEFB   255,240,  7,255,248,  7,255,248
   DEFB     7,255,248,  7,255,248,  3,255
   DEFB   240,  3,255,240,  1,255,224,  0
   DEFB   255,192,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1,255,224,  3,255,240,  3
   DEFB   255,240,  7,255,248,  7,255,248
   DEFB     7,255,248,  7,255,248,  3,255
   DEFB   240,  3,255,240,  1,255,224,  0
   DEFB   255,192,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1,255,224,  3,255,240,  3
   DEFB   255,240,  7,255,248,  7,255,248
   DEFB     7,255,248,  7,255,248,  3,255
   DEFB   240,  3,255,240,  1,255,224,  0
   DEFB   255,192,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1,255,224,  3,255,240,  3
   DEFB   255,240,  7,255,248,  7,255,248
   DEFB     7,255,248,  7,255,248,  3,255
   DEFB   240,  3,255,240,  1,255,224,  0
   DEFB   255,192,  0,125,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1,255,224,  3,255,240,  3
   DEFB   255,240,  7,255,248,  7,255,248
   DEFB     7,255,248,  7,255,248,  3,253
   DEFB   240,  3,253,240,  1,254,224,  0
   DEFB   255, 64,  0,127,128,  0, 30,  0
   DEFB     0, 30,  0,  0,127,128,  0,255
   DEFB   192,  1,255,224,  3,255,240,  3
   DEFB   255,240,  7,253,248,  7,253,248
   DEFB     7,254,248,  7,255,120,  3,255
   DEFB   144,  3, 15,240,  1, 55,224,  0
   DEFB   251,192,  0,113,128,  0, 30,  0
       
ciclop_w_r:
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,239,248,  1
   DEFB   199,184,  3,187,124,  3,187,124
   DEFB     3,187,124,  3,131,124,  1,199
   DEFB   184,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 55,128,  0,123
   DEFB    96,  0,187,112,  1,187,120,  1
   DEFB   131,120,  3,199,188,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 51,192,  0, 71
   DEFB   160,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,255,240,  0
   DEFB   127,224,  0, 63,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,255,252,  3,255,252,  1,255
   DEFB   248,  1,255,248,  0,239,240,  0
   DEFB    71,160,  0, 59,192,  0, 15,  0
   DEFB     0, 15,  0,  0, 63,192,  0,127
   DEFB   224,  0,255,240,  1,255,248,  1
   DEFB   255,248,  3,255,252,  3,255,252
   DEFB     3,239,252,  3,199,188,  1,187
   DEFB   120,  1,187,120,  0,187,112,  0
   DEFB    67, 96,  0, 55,192,  0, 15,  0
       
ciclop_nw_r:
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   240,  0,120,248,  0,244,252,  0
   DEFB   238,252,  1,206,254,  1,197,254
   DEFB     1,227,254,  1,247,230,  0,255
   DEFB   220,  0,255,188,  0,127,120,  0
   DEFB    63,112,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 30,224,  0, 46
   DEFB   240,  0, 69,248,  0,227,252,  0
   DEFB   247,228,  1,255,222,  1,255,190
   DEFB     1,255,126,  1,255,126,  0,255
   DEFB   252,  0,255,252,  0,127,248,  0
   DEFB    63,240,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   208,  0,127,184,  0,255,124,  0
   DEFB   255,124,  1,255,254,  1,255,254
   DEFB     1,255,254,  1,255,254,  0,255
   DEFB   252,  0,255,252,  0,127,248,  0
   DEFB    63,240,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 31, 96,  0, 63
   DEFB   240,  0,127,248,  0,255,252,  0
   DEFB   255,252,  1,255,254,  1,255,254
   DEFB     1,255,254,  1,255,254,  0,255
   DEFB   252,  0,255,252,  0,127,248,  0
   DEFB    63,240,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   240,  0,127,248,  0,255,252,  0
   DEFB   255,252,  1,255,254,  1,255,254
   DEFB     1,255,254,  1,255,254,  0,255
   DEFB   252,  0,255,252,  0,127,248,  0
   DEFB    63,240,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   240,  0,127,248,  0,255,252,  0
   DEFB   255,252,  1,255,254,  1,255,254
   DEFB     1,255,254,  1,255,254,  0,255
   DEFB   252,  0,255,252,  0,127,248,  0
   DEFB    63,240,  0, 31,224,  0,  7,128
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   240,  0,127,248,  0,255,252,  0
   DEFB   255,252,  1,255,254,  1,255,254
   DEFB     1,255,254,  1,255,254,  0,255
   DEFB   252,  0,248,252,  0,116,248,  0
   DEFB    46,240,  0, 30,224,  0,  7,128
   DEFB     0,  7,128,  0, 31,224,  0, 63
   DEFB   240,  0,127,248,  0,255,252,  0
   DEFB   255,252,  1,255,254,  1,248,254
   DEFB     1,244,254,  1,238,254,  0,206
   DEFB   252,  0,197,252,  0, 99,248,  0
   DEFB    55,240,  0, 31,224,  0,  7,128
END ASM

SATURNO:
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain
;GRAPHIC DATA:
;Pixel Size:      ( 24,  16)
;Char Size:       (  3,   2)
;Frames:             8
;Sort Priorities: X char, Char line, Y char, Frame number
;Data Outputted:  Gfx
;Interleave:      Sprite
;Mask:            No

saturno_r:
 DEFB   3,192,  0, 30,184,  0,109, 86
 DEFB   0,154,137,  0,149,  9,  0,106
 DEFB 134,  0, 16, 56,  0, 10,144,  0
 DEFB   5, 96,  0,  3,192,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   1,224,  0, 15, 92,  0, 54,171
 DEFB   0, 77, 68,128, 74,132,128, 53
 DEFB  67,  0,  8, 28,  0,  5, 72,  0
 DEFB   2,176,  0,  1,224,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,240,  0,  7,174,  0, 27, 85
 DEFB 128, 38,162, 64, 37, 66, 64, 26
 DEFB 161,128,  4, 14,  0,  2,164,  0
 DEFB   1, 88,  0,  0,240,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,120,  0,  3,215,  0, 13,170
 DEFB 192, 19, 81, 32, 18,161, 32, 13
 DEFB  80,192,  2,  7,  0,  1, 82,  0
 DEFB   0,172,  0,  0,120,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 60,  0,  1,235,128,  6,213
 DEFB  96,  9,168,144,  9, 80,144,  6
 DEFB 168, 96,  1,  3,128,  0,169,  0
 DEFB   0, 86,  0,  0, 60,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 30,  0,  0,245,192,  3,106
 DEFB 176,  4,212, 72,  4,168, 72,  3
 DEFB  84, 48,  0,129,192,  0, 84,128
 DEFB   0, 43,  0,  0, 30,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 15,  0,  0,122,224,  1,181
 DEFB  88,  2,106, 36,  2, 84, 36,  1
 DEFB 170, 24,  0, 64,224,  0, 42, 64
 DEFB   0, 21,128,  0, 15,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  7,128,  0, 61,112,  0,218
 DEFB 172,  1, 53, 18,  1, 42, 18,  0
 DEFB 213, 12,  0, 32,112,  0, 21, 32
 DEFB   0, 10,192,  0,  7,128,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
END ASM

SOMBRA:
ASM
; ASM source file created by SevenuP v1.20
; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain
;GRAPHIC DATA:
;Pixel Size:      ( 24,  16)
;Char Size:       (  3,   2)
;Frames:             8
;Sort Priorities: X char, Char line, Y char, Frame number
;Data Outputted:  Gfx
;Interleave:      Sprite
;Mask:            No

sombra_r:
 DEFB   5, 64,  0, 10,160,  0, 21, 80
 DEFB   0, 10,160,  0,  5, 64,  0,  2
 DEFB 128,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   2,160,  0,  5, 80,  0, 10,168
 DEFB   0,  5, 80,  0,  2,160,  0,  1
 DEFB  64,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   1, 80,  0,  2,168,  0,  5, 84
 DEFB   0,  2,168,  0,  1, 80,  0,  0
 DEFB 160,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,168,  0,  1, 84,  0,  2,170
 DEFB   0,  1, 84,  0,  0,168,  0,  0
 DEFB  80,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 84,  0,  0,170,  0,  1, 85
 DEFB   0,  0,170,  0,  0, 84,  0,  0
 DEFB  40,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 42,  0,  0, 85,  0,  0,170
 DEFB 128,  0, 85,  0,  0, 42,  0,  0
 DEFB  20,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 21,  0,  0, 42,128,  0, 85
 DEFB  64,  0, 42,128,  0, 21,  0,  0
 DEFB  10,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0, 10,128,  0, 21, 64,  0, 42
 DEFB 160,  0, 21, 64,  0, 10,128,  0
 DEFB   5,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
 DEFB   0,  0,  0,  0,  0,  0,  0,  0
END ASM

BUFFERATTRSATURNO:
ASM
DEFB 0,0,0,0,0,0
END ASM
BUFFERATTRCICLOPEUNO:
ASM
DEFB 0,0,0,0,0,0
END ASM
BUFFERATTRCICLOPEDOS:
ASM
DEFB 0,0,0,0,0,0
END ASM

STOP

SUB doubleSizePrintChar(y AS UBYTE, x AS UBYTE, thingToPrint AS UBYTE)
' Prints a single character double sized.
' Takes X and Y values as character positions, like print.
' takes an ascii code value for a character.
' By Britlion, 2012.

ASM
LD A,(IX+5)       ;' Y value
CP 22
JP NC, doubleSizePrintCharEnd
;' A=y value
LD E,A
AND 24                        ; calculate
OR 64                          ; screen
LD H,A                         ; address

LD A,E                         ; FOR

AND 7                          ; row

OR a                            ; Y

RRA

RRA

RRA

RRA

LD E,A



LD A,(IX+7)       ;' X Value

CP 30

JP NC, doubleSizePrintCharEnd



ADD A,E                                  ;' correct address for column value. (add it in)

LD L,A

EX DE,HL                     ;' Save it in DE



LD A,(IX+9)       ;'Character



CP 164                         ;' > UDG "U" ?

JP NC, doubleSizePrintCharEnd



CP 32               ;' < space+1?

JP C, doubleSizePrintCharEnd



CP 144                         ;' >144?

JP NC, doubleSizePrintCharUDGAddress



LD L,A

LD H,0



ADD HL,HL

ADD HL,HL

ADD HL,HL       ;' multiply by 8.

LD BC,(23606)  ;' Chars

ADD HL,BC      ;' Hl -> Character data.

EX DE,HL         ;' DE -> character data, HL-> screen address.

JP doubleSizePrintCharRotateLoopCharStart



doubleSizePrintCharUDGAddress:

LD HL,(23675)    ;'UDG address

SUB 144

ADD A,A         ;multiply by 8.

ADD A,A

ADD A,A

ADD A,L

LD L,A



JR NC, doubleSizePrintCharUDGAddressNoCarry

INC H

doubleSizePrintCharUDGAddressNoCarry:



;' At this point HL -> Character data in UDG block.

EX DE,HL ;' DE -> character data, HL-> screen address.



doubleSizePrintCharRotateLoopCharStart:

LD C,2 ;' 2 character rows.

doubleSizePrintCharRotateLoopCharRowLoopOuter:

LD b,4 ;' 4 source bytes to count through per character row.

doubleSizePrintCharRotateLoopCharRowLoopInner:

   PUSH BC



   LD A,(DE) ;' Grab a bitmap.

   PUSH DE



   LD B,4

   doubleSizePrintCharRotateLoop1:

      RRA

      PUSH AF

      RR E

      POP AF

      RR E

   DJNZ doubleSizePrintCharRotateLoop1



   LD B,4

   doubleSizePrintCharRotateLoop2:

       RRA

       PUSH AF

       RR D

       POP AF

       RR D

   DJNZ doubleSizePrintCharRotateLoop2



   LD (HL),D      ;' Output first byte

   INC HL          ;' Move right

   LD (HL),E      ;' Second half.

   DEC HL         ;' Move left

   INC H            ;' Move down

   LD (HL),D      ;' Output second row (copy of first), first byte.

   INC HL          ;' Move right

   LD (HL),E      ; Output second row, second BYTE

   DEC HL         ; Move left

   INC H            ; Move down.

   POP DE

   INC DE

   POP BC

DJNZ doubleSizePrintCharRotateLoopCharRowLoopInner

; CALL __DECY+2        ;'Jump into the DRAW next_line_down routine, at a convenient point (accounting for the INC H above)

; Can't seem to call to this at the moment! Here in longhand form:



ld a, h

AND 7

jr nz, doubleSizePrintCharRotateNextCharRow

ld a, l

add a, 32

ld l, a

jr c, doubleSizePrintCharRotateNextCharRow

ld a, h

SUB 8

ld h, a



doubleSizePrintCharRotateNextCharRow:



DEC C

JR NZ, doubleSizePrintCharRotateLoopCharRowLoopOuter



doubleSizePrintCharEnd:

END ASM

END SUB



SUB doubleSizePrint(y AS UBYTE, x AS UBYTE, thingToPrint$ AS STRING)

'Uses doubleSizePrintChar subroutine to print a string.

'By Britlion, 2012



   DIM n AS UBYTE

   FOR n=0 TO LEN thingToPrint - 1

      doubleSizePrintChar(y,x,CODE thingToPrint$(n) )

      x=x+2

   NEXT n

END SUB
Attachments
CICLOPDEMO.zip
(6.34 KiB) Downloaded 90 times
<<

apenao

Posts: 58

Joined: Tue Feb 09, 2010 10:08 pm

Post Mon Aug 12, 2013 9:09 pm

Re: COCHES & CICLOPES (Y SATURNO)

P.S. There's one thing I wanted to write about the graphics. The sprite routine is the same for both games, but if you check the code in the cars game there are fewer graphics. That's because in the car's game we change the picture in every horizontal displacement (the graphics are pre-shifted) and in the cyclops game we also change the picture in every vertical displacement. That's a lot more memory usage but the "rolling" effect is nice :)

Return to Gallery

Who is online

Users browsing this forum: No registered users and 1 guest

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.

phpBB SEO