Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
COCHES & CICLOPES (Y SATURNO)
#1
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...).


Attached Files
.zip   CICLOPES.zip (Size: 5.28 KB / Downloads: 1,265)
.zip   COCHES.zip (Size: 8.79 KB / Downloads: 1,255)
Reply
#2
Actually, they are sort of cool. You should definitely put them on WOS. Nice job! Very smooth cars, there Smile

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.
Reply
#3
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).
Reply
#4
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
Reply
#5
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


Attached Files
.zip   coches hector.zip (Size: 2.26 KB / Downloads: 1,193)
Reply
#6
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.
Reply
#7
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 Smile

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


Attached Files
.zip   CICLOPDEMO.zip (Size: 6.34 KB / Downloads: 1,153)
Reply
#8
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 Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)